我爲我的客戶設置了一個上傳器(使用php),他們可以在他們的機器上選擇CSV(以預定格式)上傳。 CSV可能會有4000-5000行。 Php將通過讀取CSV的每一行來處理文件,並將其直接插入到數據庫表中。這部分很容易。然而,理想情況下,在將這些數據附加到數據庫表之前,我想回顧3列(A,B和C),並檢查是否已經有3個字段的匹配組合表和如果所以我寧願更新該行而不是追加。如果我沒有匹配那3列的組合,我想繼續並插入行,將數據附加到表中。可能有混合覆蓋/附加批處理寫入MySQL?
我的第一個想法是,我可以使列A,B和C成爲我表中的唯一索引,然後插入每一行,以某種方式檢測'失敗'的INSERT(由於我的唯一索引的限制)然後進行更新。似乎這種方法可能比爲每行創建一個單獨的SELECT查詢更有效,只是爲了查看我的表中是否有匹配的組合。
第三種方法可能是簡單地追加一切,不使用MySQL唯一索引,然後在客戶機稍後查詢該表時只抓取最新的唯一組合。但是我試圖避免在該表中有大量無用的數據。
有關最佳實踐或巧妙方法的想法?
非常方便的技術。 – phirschybar 2010-12-10 16:08:05
很高興我能幫到你。這是我拾起的一個方便的技巧。 – 2010-12-10 19:32:24