https://dev.mysql.com/doc/refman /8.0/en/insert-optimization.html
行の挿入に必要な時間は、次の要因によって決まります。数字はおおよその比率を示しています。
- 接続:(3)
- サーバーへのクエリの送信:(2)
- 解析クエリ:(2)
- 行の挿入:(1×行のサイズ)
- インデックスの挿入:(1×インデックスの数)
- 締めくくり:(1)
このことから、1つの大きなステートメントを送信すると、挿入ステートメントごとに7のオーバーヘッドが節約されることは明らかです。これをさらに読むと、次のようにもなります。
同じクライアントから同時に多くの行を挿入する場合は、複数のVALUESリストを含むINSERTステートメントを使用して、一度に複数の行を挿入します。これは、個別の単一行のINSERTステートメントを使用するよりもかなり高速です(場合によっては何倍も高速です)。