バルクインサートを最適化する方法はいくつかあります。いくつかは:
-
LOAD DATA INFILE
。 ラッパーAPIがあります。 NET 。これが最速の方法ですが、単純な挿入とはいくつかの制限と意味上の違いがあります。 -
複数行の
INSERT
ステートメント:INSERT INTO temperature (temperature) VALUES (1.0), (2.0), (3.0), ...
一度に20.000.000行を挿入するべきではありませんが、非常に大幅な高速化のために1.000-10.000を試してみることをお勧めします。これは、速度を上げるためのシンプルで非常に問題のない方法です。多くの場合、10倍、場合によってはそれ以上の係数が可能です。
-
テーブルをロックする(
LOCK TABLES
。 -
インデックスを一時的に無効にします。
-
MySQLオプションの調整。
-
INSERT DELAYED
(ここではあまり役に立たない可能性があります)。
ドキュメントには、より詳細な詳細
が記載されています。 オプションについて。一部のオプションはテーブルタイプによって異なります( InnoDB
対
一般的な提案:VALUES
の前に挿入する列を常に指定してください 。これにより、コードの保守が容易になります。