1)插入數據庫以前檢查數據是否已經存在數據庫;數據庫
2)添加惟一索引,插入時使用 INSERT INTO … ON DUPLICATE KEY UPDATE…索引
3)添加惟一索引,插入時使用 INSERT INGNORE INTO…效率
4)添加惟一索引,插入時使用 REPLACE INTO…語法
第一種方案是最簡單但也是效率最差的方案,所以不採起。二和四方案的執行結果是同樣的,不一樣的是,在遇到相同的數據時, INSERT INTO … ON DUPLICATE KEY UPDATE 是直接更新的,而 REPLACE INTO 是先刪除舊的數據而後插入新的,在這個過程當中,還須要從新維護索引,因此速度慢。因此在二和四二者間選擇了第二種方案。而第三種方案, INSERT INGNORE 會忽略執行INSERT語句出現的錯誤,不會忽略語法問題,可是忽略主鍵存在的狀況。這樣一來,使用 INSERT INGNORE 就更好了。最終,考慮到要在數據庫中記錄重複數據的條數,所以在程序中採用了第二種方案。程序