3

一意のインデックスの下で列が定義されたテーブルがあります。テーブルにデータを挿入するとき、私は現在、一致する行がすでに存在するかどうかを確認しておらず、代わりにMySQLに処理させています。

これは好ましいアプローチですか?つまり、SELECTを追加して、挿入前に重複行をチェックすることもできますが、挿入の5〜10%が重複をトリガーする可能性があるため、パフォーマンスの観点からはコストがかかるようです。

4

2 に答える 2

2

はい、MySQLにそれを理解させてください。それはすでに次の可能な値が何であるかを知っており、あなたができるよりもはるかに速くそれを選ぶでしょう。

selectメソッドが失敗する可能性があるだけでなく、サーバーへの1回ではなく2回のラウンドトリップも含まれます。言うまでもなく、サーバーにそれを理解させるだけで、最適化する機会が増えます。

于 2012-04-14T03:53:37.047 に答える
0

MySQLには、非常に便利な「ONDUPLICATEKEY」構文があります。

http://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html

于 2012-04-14T04:04:44.950 に答える