私はMysqlを初めて使い、本でこれを読んでいます。「大きなログバッファを使用すると、トランザクションがコミットする前にログをディスクに書き込む必要なく、大きなトランザクションを実行できます。したがって、大きなトランザクションがある場合、ログバッファを大きくすることで、ディスクI/Oを節約できます。」
OK ...パーフェクト..だからこのステートメントを発行します:
set global innodb_log_buffer_size=xxx;
それで、大きなトランザクションがあり、innodb_log_buffer_sizeを増やす必要がある場合、どのように大きくすることができますか?
Windowsではmysql 5.7を使用しています。
ありがとうございました。
これらのファイルは、MySQLを最初にインストールしたときに作成されます。その後サイズを変更するのは不器用です。特に、サイズを動的に変更することはできません。
現在の設定はどのくらいですか? 1つのトランザクションで何行が影響を受けていますか?それは価値がないかもしれません。
変更することを選択した場合。参照 MySQL innodb変数 'innodb_log_file_size'を安全に変更する方法? コメントも必ずお読みください。
動的ではない
https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_log_file_size は、innodb_log_file_size
が動的ではないことを意味します。つまり、SET
は機能しません。 my.cnf
の値は変更できますが、上記の問題が発生します。 5.6.8変更ログのメモ:
起動時に、innodb_log_file_size設定オプションの値とREDOログを構成するib_logfile *ファイルの実際のサイズの間に不一致がある場合、MySQLは起動しませんでした。この動作では、innodb_log_file_sizeの値を変更した後、REDOログファイルを手動で削除する必要がありました。修正により、MySQLはすべてのダーティページをディスクに書き込み、サイズの不一致を検出すると、起動時にREDOログファイルを再作成します。バグ#14596550)