この巨大な32 GBのSQLダンプがあり、MySQLにインポートする必要があります。そのような巨大なSQLダンプをインポートする必要はありませんでした。私はいつもやった:
mysql -uroot dbname < dbname.sql
時間がかかりすぎています。約3億行のテーブルがあり、約3時間で150万行になります。そのため、全体が600時間(24日間)かかり、実用的ではないようです。だから私の質問は、これを行うより速い方法はありますか?
詳細情報/調査結果
- テーブルはすべてInnoDBであり、外部キーは定義されていません。ただし、多くのインデックスがあります。
- 元のサーバーとDBにアクセスできないため、新しいバックアップを作成したり、「ホット」コピーなどを実行したりできません。
- ここで
innodb_flush_log_at_trx_commit = 2
提案されている設定では、(明らかに見える/指数関数的に)改善されないようです。 - (MySQLのワークベンチからの)輸入時のサーバの統計情報:https://imgflip.com/gif/ed0c8。
- MySQLバージョンは5.6.20コミュニティです。
- innodb_buffer_pool_size = 16Mおよびinnodb_log_buffer_size = 8M。これらを増やす必要がありますか?