insert ignore
adalah metode yang lebih baik, karena beberapa alasan.
Dalam hal kinerja, hanya satu kueri yang dikompilasi dan dieksekusi, bukan dua. Ini menghemat biaya pemindahan barang masuk dan keluar dari database.
Dalam hal pemeliharaan, hanya memiliki satu kueri lebih dapat dipertahankan, karena logikanya ada di satu tempat. Jika Anda menambahkan where
klausa, misalnya, Anda kemungkinan besar akan melewatkan penambahannya dalam dua kueri terpisah.
Dalam hal akurasi, hanya satu kueri yang tidak memiliki (atau setidaknya lebih sedikit) peluang untuk kondisi balapan. Jika sebuah baris disisipkan di antara select
dan insert
, maka Anda masih akan mendapatkan kesalahan.
Namun, lebih baik daripada insert ignore
adalah insert . . . on duplicate key update
. Yang terakhir hanya menghindari kesalahan untuk masalah duplikasi. insert ignore
mungkin mengabaikan kesalahan yang sebenarnya Anda pedulikan.
Omong-omong, Anda harus memeriksa kesalahan dari pernyataan itu.