mySQL のダンプとインポートを高速化するための文書化された手法はありますか?
これには、RAM ディスクの使用など、my.cnf 設定が含まれます。
文書化された手法のみを探し、できれば速度向上の可能性を示すベンチマークを使用します。
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
、インポートの実行中に一時的に。1
ACID が必要な場合は元に戻すことができます。
あなたの質問は、ボトルネックがどこにあるかにも依存すると思います。
-C
ネットワークがボトルネックになっている場合は、 /への--compress
フラグを確認することもできますmysqldump
。また、(およびMyIsam を使用している場合)の--quick
フラグを見てください。mysqldump
--disable-keys
外部キー チェックをオフにして、自動コミットをオンにします。
ダンプで拡張挿入を使用すると、インポートが高速になります。
mysqlhotcopy
MyIsam テーブルしかない場合は、代わりになるかもしれません。
インデックスを使いすぎず、クエリ キャッシュを有効にし、大きなデータベースには sphinx を使用します。ここにいくつかのヒントがあります http://www.keedeo.com/media/1857/26-astuces-pour-accelerer-vos-requetes-mysql (フランス語で)