Mysql

Mysql innodb_log_buffer_size 改變

  • February 19, 2017

我是 Mysql 的新手,我正在讀一本書:“大型日誌緩衝區允許大型事務執行,而無需在事務送出之前將日誌寫入磁碟。因此,如果您有大型事務,則更大的日誌緩衝區可以節省磁碟 I/O。”

好的…完美..所以我要發表這個聲明:

set global innodb_log_buffer_size=xxx;

Mysql 回复我:“ERROR 1238 (HY000): Variable ‘innodb_log_buffer_size’ is a read only variable”

那麼,如果我有大筆交易,並且需要增加 innodb_log_buffer_size,我怎樣才能讓它更大呢?

我在 Windows 上使用 mysql 5.7。

謝謝你。

這些文件是在您第一次安裝 MySQL 時創建的。之後更改大小很笨拙。特別是,大小不能動態更改。

現在的設置有多大?一個事務會影響多少行?這可能不值得。

如果您確實選擇進行更改;請參閱如何安全地更改 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 配置選項的值與組成重做日誌的 ib_logfile* 文件的實際大小不匹配,MySQL 將不會啟動。此行為需要在更改 innodb_log_file_size 的值後手動刪除重做日誌文件。如果 MySQL 檢測到大小不匹配,該修復會導致 MySQL 將所有臟頁寫入磁碟並在啟動期間重新創建重做日誌文件。(錯誤 #14596550)

引用自:https://dba.stackexchange.com/questions/164855