sql >> データベース >  >> RDS >> Mysql

MyISAMからInnoDBへの変換を高速化

    • 大きな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のページキャッシュ。

    マイナーな調整も行う場合は、データを安全に保つために、変換後に元に戻す必要があることを覚えておいてください(別の小さなダウンタイム)。ただし、このような小さなデータセットには価値があるとは思えません。

    頑張ってください。



    1. MySQLはテーブルをループします

    2. mysqlの安全でないステートメントの警告をオフにします

    3. チェックボックス、php、mysqlを使用してデータベーステーブルを更新します

    4. mysqlキーが長すぎる問題でした