INSERT
多くのセットを提供するマルチメソッドを使用することVALUES
は、それらを個別に行うよりも常に優れています。設定と同じ大きさのステートメントを作成しmax_allowed_packet
、理想的にはそれをできるだけ高く調整する必要があります。一般的に 2GB は可能な限り高く、最大速度を得るには、少なくとも 10 ~ 50MB のサイズのチャンクを入れる必要があります。
LOAD DATA INFILE
もオプションですが、これは通常、マルチメソッドよりもせいぜい 10 ~ 15% 高速であり、INSERT
開始するにはデータが特定の形式である必要があります。CSV またはタブ区切りが最も使いやすく、XML はオプションではありません。
最大限のパフォーマンスを得るには、大量のデータを挿入する前にインデックスを無効にします。これらのトリックのいくつかはmysqldump
、空のデータベース スキーマのスナップショットでも見ることができます。
インデックス作成を無効にするには、インポートの前に次のステートメントを実行します。
ALTER TABLE `table_name` DISABLE KEYS;
次に、インポート後、それらを再構築します。
ALTER TABLE `table_name` ENABLE KEYS;