mysql的儲存核心 關於mysql的2個核心引數

2021-10-17 20:07:04 字數 867 閱讀 8119

以上兩個引數是控制mysql磁碟寫入策略以及資料安全性的關鍵引數。

innodb_flush_log_at_trx_commit

sync_binlog

需要對資料安全性和寫入效能根據業務場景進行權衡設定。

innodb_flush_log_at_trx_commit引數:

0【寫效能最好,但當mysqld異常崩潰時會丟失資料】: 由mysql的main_thread每秒將儲存引擎log buffer中的redo日誌寫入到log file,並呼叫檔案系統的sync操作,將日誌重新整理到磁碟。

1【最安全不丟失資料,但寫效能最低】:每次事務提交時,將儲存引擎log buffer中的redo日誌寫入到log file,並呼叫檔案系統的sync操作,將日誌重新整理到磁碟。

2【寫效能一般,但當os異常崩潰或者斷電時會丟失資料】:每次事務提交時,將儲存引擎log buffer中的redo日誌寫入到log file,並由儲存引擎的main_thread 每秒將日誌重新整理到磁碟。

sync_binlog引數:

0 :儲存引擎不進行binlog的重新整理到磁碟,而由作業系統的檔案系統控制快取重新整理。

1:每提交一次事務,儲存引擎呼叫檔案系統的sync操作進行一次快取的重新整理,這種方式最安全,但效能較低。

n:當提交的日誌組=n時,儲存引擎呼叫檔案系統的sync操作進行一次快取的重新整理。

總結:(1)生產環境中,大部分時間情況下,這2個引數都設定為1。因為不允許有資料丟失出現。

(2)在大促或者業務高峰期時,在確保資料庫和伺服器不會出現異常宕機的情況,可以臨時性的進行如下修改:set global sync_binlog=0; set global innodb_flush_log_at_trx_commit=2; 等待大促過後,再修改回雙1模式。

linux php 增加mysql 關於Mysql

mysql是乙個,由瑞典mysql ab 公司開發,屬於 oracle 旗下產品。mysql 是最流行的關係型資料庫管理系統之一,在 web 應用方面,mysql是最好的 rdbms relational database management system,關聯式資料庫管理系統 應用軟體之一。my...

關於mysql儲存過程

刪除 drop procedure if exists 名稱 建立例項 create procedure add caller myuid int,fwuid int,dt datetime,out returnvalue int begin declare exresult int declare...

MySQL核心 InnoDB儲存引擎 試讀

mysql核心 innodb儲存引擎 卷1 從原始碼層次分析了innodb的體系結構 原理 工作機制等,結合實踐案例,對我們想深入學習mysql innodb 核心原理來說,是不可多得的好書。思考 mysql innodb引擎同 myisam 的比較 myisam是非事務安全型,而innodb是事務...