sql >> データベース >  >> RDS >> Mysql

SQLを実行する最も効率的な方法'存在しない場合は挿入'

    insert ignore いくつかの理由から、より良い方法です。

    パフォーマンスの観点から、2つではなく、1つのクエリのみがコンパイルおよび実行されます。これにより、データベースにデータを出し入れするオーバーヘッドが節約されます。

    メンテナンスに関しては、ロジックがすべて1つの場所にあるため、クエリを1つだけ持つ方がメンテナンスが容易です。 whereを追加した場合 たとえば、句は、2つの別々のクエリで追加するのを見逃す可能性が高くなります。

    精度の観点から、競合状態の機会がない(または少なくともはるかに少ない)クエリは1つだけにする必要があります。 selectの間に行が挿入されている場合 およびinsert 、それでもエラーが発生します。

    ただし、insert ignoreよりも優れています insert . . . on duplicate key update 。後者は、重複の問題のエラーを回避するだけです。 insert ignore 実際に気になるエラーを無視している可能性があります。

    ちなみに、とにかくステートメントからのエラーをチェックする必要があります。



    1. MySQLでrootユーザーとして設定およびログインする方法

    2. MySQLクエリの複数の列インデックスを理解する

    3. ORDERBYフィールドを選択せず​​にDISTINCT行を選択する方法

    4. SQL ServerのDATEDIFF()とDATEDIFF_BIG():違いは何ですか?