大批量數據進入mysql的幾種方式

場景:向已有的數據庫中插入大量不重複數據。

向數據庫中插入大量數據時,需要判斷插入的數據是否重複,然後再決定插入與否,如何提高效率?

1.一般的插入方法:INSERT INTO

 在數據庫中把某字段設置成唯一索引,當數據重複時,這是會報錯,要向忽略這個錯誤,那麼應將插入語句寫在try....except...中

2.忽略重複數據:INSERT IGNORE INTO

如果不想顯示的去寫try...except,那麼這條語句很適合你,插入數據時,若出現錯誤或重複數據,將不返回錯誤,只以警告形式返回。所以使用ignore請確保語句本身沒有問題,否則也會被忽略掉

3.INSERT IGNORE INTO ......ON DUPLICATE KEY UPDATE

當primary或者unique重複時,則執行update語句,如update後爲無用語句,如id=id.

4.INSERT INTO ...SELECT ... WHERE NOT EXIST

根據select的條件判斷是否插入,可以不光通過primary 和unique來判斷,也可通過其它條件。這種方法其實就是使用了mysql的一個臨時表的方式,但是裏面使用到了子查詢,效率也會有一點點影響,如果能使用上面的就不使用這個

5.REPLACE INTO

如果存在primary or unique相同的記錄,則先刪除掉。再插入新記錄。這種方法就是不管原來有沒有相同的記錄,都會先刪除掉然後再插入

發佈了27 篇原創文章 · 獲贊 9 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章