MySQL配置引數sync binlog說明

2022-07-21 19:00:14 字數 591 閱讀 9249

mysql提供乙個sync_binlog引數來控制資料庫的binlog刷到磁碟上去。

預設,sync_binlog=0,表示mysql不控制binlog的重新整理,由檔案系統自己控制它的快取的重新整理。這時候的效能是最好的,但是風險也是最大的。因為一旦系統crash,在binlog_cache中的所有binlog資訊都會被丟失。

如果sync_binlog=0,表示每sync_binlog次事務提交,mysql呼叫檔案系統的重新整理操作將快取刷下去。最安全的就是sync_binlog=1了,表示每次事務提交,mysql都會把binlog刷下去,是最安全但是效能損耗最大的設定。這樣的話,在資料庫所在的主機作業系統損壞或者突然掉電的情況下,系統才有可能丟失1個事務的資料。但是binlog雖然是順序io,但是設定sync_binlog=1,多個事務同時提交,同樣很大的影響mysql和io效能。雖然可以通過group commit的補丁緩解,但是重新整理的頻率過高對io的影響也非常大。對於高併發事務的系統來說,「sync_binlog」設定為0和設定為1的系統寫入效能差距可能高達5倍甚至更多。

所以很多mysql dba設定的sync_binlog並不是最安全的1,而是100或者是0。這樣犧牲一定的一致性,可以獲得更高的併發和效能。

mysql配置引數優化 mysql配置引數優化

最大連線數 優化 max connections 1000 table open cache 256 query cache type 1 查詢快取大小 query cache size 1m tmp table size 32m 執行緒快取數 thread cache size 8 關閉dns做反...

MySQL 引數配置

基本配置 你需要經常察看以下3個配置項。不然,可能很快就會出問題。innodb buffer pool size 這是你安裝完innodb後第乙個應該設定的選項。緩衝池是資料和索引快取的地方 這個值越大越好,這能保證你在大多數的讀取操作時使用的是記憶體而不是硬碟。典型的值是5 6gb 8gb記憶體 ...

mysql引數配置

在伺服器中每個連線所分配的記憶體主要由下面四個引數控制 1 sort buffer size連線進行排序時候分配該配置引數大小的記憶體進行排序操作,比如該大小設定為100m,如果有100個連線同時進行排序將分配10g的記憶體,很容易造成伺服器記憶體溢位 2 join buffer size定義mys...