如何區(qū)分MySQL的innodb_flush_log_at_trx_commit和sync_binlog
innodb_flush_log_at_trx_commit和sync_binlog 兩個(gè)參數(shù)是控制MySQL磁盤(pán)寫(xiě)入策略以及數(shù)據(jù)安全性的關(guān)鍵參數(shù)。
show variables like "innodb_flush_log_at_trx_commit";
innodb_flush_log_at_trx_commit:
0: 由mysql的main_thread每秒將存儲(chǔ)引擎log buffer中的redo日志寫(xiě)入到log file,并調(diào)用文件系統(tǒng)的sync操作,將日志刷新到磁盤(pán)。
1:每次事務(wù)提交時(shí),將存儲(chǔ)引擎log buffer中的redo日志寫(xiě)入到log file,并調(diào)用文件系統(tǒng)的sync操作,將日志刷新到磁盤(pán)。
2:每次事務(wù)提交時(shí),將存儲(chǔ)引擎log buffer中的redo日志寫(xiě)入到log file,并由存儲(chǔ)引擎的main_thread 每秒將日志刷新到磁盤(pán)。
show variables like "sync_binlog";
sync_binlog:
0 :存儲(chǔ)引擎不進(jìn)行binlog的刷新到磁盤(pán),而由操作系統(tǒng)的文件系統(tǒng)控制緩存刷新。
1:每提交一次事務(wù),存儲(chǔ)引擎調(diào)用文件系統(tǒng)的sync操作進(jìn)行一次緩存的刷新,這種方式最安全,但性能較低。
n:當(dāng)提交的日志組=n時(shí),存儲(chǔ)引擎調(diào)用文件系統(tǒng)的sync操作進(jìn)行一次緩存的刷新。
sync_binlog=0或sync_binlog大于1,事務(wù)被提交,而尚未同步到磁盤(pán)。因此,在電源故障或操作系統(tǒng)崩潰時(shí)有可能服務(wù)器已承諾尚未同步一些事務(wù)到二進(jìn)制日志。因此它是不可能執(zhí)行例行程序恢復(fù)這些事務(wù),他們將會(huì)丟失二進(jìn)制日志。
innodb_flush_log_at_trx_commit和sync_binlog 都為 1 時(shí)是最安全的,在mysqld 服務(wù)崩潰或者服務(wù)器主機(jī)crash的情況下,binary log 只有可能丟失最多一個(gè)語(yǔ)句或者一個(gè)事務(wù)。但是魚(yú)與熊掌不可兼得,雙1,1 會(huì)導(dǎo)致頻繁的io操作,因此該模式也是最慢的一種方式。
實(shí)際使用時(shí),要考慮業(yè)務(wù)方對(duì)性能和安全性的需求,綜合考量設(shè)置,兩個(gè)參數(shù)。上圖中是我們線上機(jī)器的參數(shù)。
以上就是如何區(qū)分MySQL的innodb_flush_log_at_trx_commit和sync_binlog的詳細(xì)內(nèi)容,更多關(guān)于MySQL的innodb_flush_log_at_trx_commit和sync_binlog的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Mysql數(shù)據(jù)庫(kù)雙機(jī)熱備難點(diǎn)分析
本文主要給大家介紹了在Mysql數(shù)據(jù)庫(kù)雙機(jī)熱備其中的難點(diǎn)分析以及重要環(huán)節(jié)的經(jīng)驗(yàn)心得,需要的朋友收藏分享下吧。2017-12-12mysql 查看表結(jié)構(gòu)數(shù)據(jù)的實(shí)現(xiàn)
在MySQL數(shù)據(jù)庫(kù)中,我們經(jīng)常需要查看表的結(jié)構(gòu)和數(shù)據(jù)信息,以便了解表的字段定義、索引情況等,本文主要介紹了mysql 查看表結(jié)構(gòu)數(shù)據(jù)的實(shí)現(xiàn),感興趣的可以了解一下2024-05-05MySQL9.0的兩種部署模式及各個(gè)版本發(fā)布的新功能
本文主要介紹了MySQL9.0的兩種部署模式及各個(gè)版本發(fā)布的新功能,文中通過(guò)圖文示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08MySQL 1130異常,無(wú)法遠(yuǎn)程登錄解決方案詳解
這篇文章主要介紹了MySQL 1130異常,無(wú)法遠(yuǎn)程登錄解決方案詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08ubuntu安裝mysql數(shù)據(jù)庫(kù)方法
ubuntu基于linux的免費(fèi)開(kāi)源桌面PC操作系統(tǒng),十分契合英特爾的超極本定位,支持x86、64位和ppc架構(gòu)。這篇文章給大家介紹ubuntu安裝mysql數(shù)據(jù)庫(kù)方法,非常不錯(cuò),需要的朋友參考下吧2019-08-08MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL的問(wèn)題解決
本文主要介紹了MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03結(jié)合PHP腳本添加和查詢(xún)MySQL數(shù)據(jù)的基本教程
這篇文章主要介紹了結(jié)合PHP腳本添加和查詢(xún)MySQL數(shù)據(jù)的基本教程,即在PHP程序中使用基本的SELECT FROM和INSERT INTO語(yǔ)句,需要的朋友可以參考下2015-12-12從MySQL 5.5遷移到Mariadb 10.1.14所遇到的問(wèn)題
這篇文章主要介紹了從MySQL 5.5遷移到Mariadb 10.1.14所遇到的問(wèn)題的相關(guān)資料,需要的朋友可以參考下2016-08-08