insert ignore
いくつかの理由から、より良い方法です。
パフォーマンスの観点から、2つではなく、1つのクエリのみがコンパイルおよび実行されます。これにより、データベースにデータを出し入れするオーバーヘッドが節約されます。
メンテナンスに関しては、ロジックがすべて1つの場所にあるため、クエリを1つだけ持つ方がメンテナンスが容易です。 where
を追加した場合 たとえば、句は、2つの別々のクエリで追加するのを見逃す可能性が高くなります。
精度の観点から、競合状態の機会がない(または少なくともはるかに少ない)クエリは1つだけにする必要があります。 select
の間に行が挿入されている場合 およびinsert
、それでもエラーが発生します。
ただし、insert ignore
よりも優れています insert . . . on duplicate key update
。後者は、重複の問題のエラーを回避するだけです。 insert ignore
実際に気になるエラーを無視している可能性があります。
ちなみに、とにかくステートメントからのエラーをチェックする必要があります。