一意のインデックスの下で列が定義されたテーブルがあります。テーブルにデータを挿入するとき、私は現在、一致する行がすでに存在するかどうかを確認しておらず、代わりにMySQLに処理させています。
これは好ましいアプローチですか?つまり、SELECTを追加して、挿入前に重複行をチェックすることもできますが、挿入の5〜10%が重複をトリガーする可能性があるため、パフォーマンスの観点からはコストがかかるようです。
はい、MySQLにそれを理解させてください。それはすでに次の可能な値が何であるかを知っており、あなたができるよりもはるかに速くそれを選ぶでしょう。
select
メソッドが失敗する可能性があるだけでなく、サーバーへの1回ではなく2回のラウンドトリップも含まれます。言うまでもなく、サーバーにそれを理解させるだけで、最適化する機会が増えます。
MySQLには、非常に便利な「ONDUPLICATEKEY」構文があります。
http://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html