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

パフォーマンス複数の挿入または複数の値の単一挿入

    はい。通常、一括挿入は、挿入ステートメントごとに発生していた中間通信を回避するため、一度に1回挿入するよりも高速です。

    ただし、挿入/更新ステートメントがテーブル/行の排他ロックを取得するため、問題が発生する場合があります。これは、その時点で他のプロセス/接続がテーブルを使用できないことを意味します。

    DBを同時に使用する複数のプロセスがあり、そのうちのいくつかはテーブルからの読み取りであり、いくつかは書き込みである場合、一括挿入時に操作全体がロック/停止されます

    そのため、一括挿入は単一挿入よりも長い時間テーブルをロックします。ロック時間が長く、DBがそれに合わせて調整されていない場合、他のプロセスで問題が発生する可能性があります。

    他の操作を行わずにDBに挿入するだけの場合は、ファイルから一括挿入を実行し(これははるかに高速です)、他のプロセスを実行している場合は、ロックを考慮して一括挿入の頻度を調整します。

    重複の可能性があるのは、更新ステートメントのです。 db2の単一更新よりも高速な一括更新?



    1. PHP、MYSQLのネストされたクエリ

    2. SQLiteDatabase.query()でString[]selectionArgsを使用する

    3. 複数の行からのMySQL条件

    4. SQLでゼロ除算エラーを回避するにはどうすればよいですか?