MySQLのダンプとインポートを高速化するための文書化されたテクニックはありますか?
これには、my.cnf設定、ramdisksの使用などが含まれます。
文書化されたテクニックのみを探し、できれば高速化の可能性を示すベンチマークを探します。
http://www.maatkit.org/ にはmk-parallel-dumpとmk-parallel-restoreがあります
マルチスレッドmysqldumpを希望しているなら、これ以上は望みません。このツールは、MySQLテーブルを並行してダンプします。 mysqldumpのラッパーとして(賢明なデフォルトの動作で)、またはSELECT INTO OUTFILEのラッパーとして機能する、はるかにスマートなmysqldumpです。速度が重要な非常に大きなデータサイズの高性能アプリケーション向けに設計されています。複数のCPUとディスクを活用して、データをより速くダンプします。
Mysqldumpには、ダンプのインポート中にインデックスを作成しないなど、さまざまな潜在的なオプションがありますが、完了時にそれらをまとめて実行します。
InnoDBにインポートする場合、できる最も効果的なことは、
innodb_flush_log_at_trx_commit = 2
インポートの実行中に一時的にmy.cnf
で。 ACIDが必要な場合は、1
に戻すことができます。
あなたの質問は、ボトルネックがどこにあるかにも依存すると思います。
-C
/--compress
フラグをmysqldump
に。また、--quick
mysqldump
のフラグ(および--disable-keys
MyIsamを使用している場合)。
ダンプで拡張挿入を使用すると、インポートが高速になります。
外部キーチェックをオフにし、自動コミットをオンにします。
MyIsamテーブルしかない場合は、mysqlhotcopy
が代わりになるかもしれません。