Mysql innodb_log_buffer_size 改變
我是 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)