- 大きなinnodb_buffer_pool_size(2GB以上)を設定する
- シェルコマンドを使用して、古いmyisamデータ/インデックスファイルを先読みします
- innodb_log_file_sizeを増やす(256 MB)
- X並列スレッドでテーブルの変更を実行します。Xはサーバー上のCPUコアの数です。
- 変換のみのためのその他のマイナーな調整(innodb_doublewrite = 0、innodb_flush_log_at_trx_commit = 0)
innodb_buffer_pool_sizeをできるだけ高く設定することは、innodbテーブルの作成を高速化する一般的な方法です。データセットは2GBのinnodbバッファープール内に収まるように見えるため、適切な64ビットサーバーであればそれを許可する必要があります。alter table type = innodbは、dump + reimportソリューションよりも高速であり、並行して実行するのも簡単です。
また、innodb_log_file_sizeをデフォルトの5Mbから128または256MBに増やしたことを確認してください。これには注意してください。クリーンなシャットダウンと古いib_logfile*の消去が必要です。
サーバーに8GBのRAMがあり、64ビットバージョンのmysqlを実行している場合は、2GBのinnodb_buffer_poolをお勧めします。また、ダウンタイムのために閉じる前に、古いMYDファイルとMYIファイルを事前に読み取ることもできます。実際の作業開始時のOSのページキャッシュ。
マイナーな調整も行う場合は、データを安全に保つために、変換後に元に戻す必要があることを覚えておいてください(別の小さなダウンタイム)。ただし、このような小さなデータセットには価値があるとは思えません。
幸運を。