首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL Binlog 處理事務與非事務語句的三大規則詳解

     編輯:MySQL 資料庫相關知識

事務語句處理

事務執行期間,Server 將事件暫存於事務緩存,多事務並行時各自維護獨立緩存。事務 COMMIT 時,一次性將緩存內容刷入 Binlog,保證原子性與順序一致性。

非事務語句處理三大規則

  1. 標記為事務性:若非事務語句被標記為事務性,寫入事務緩存。
  2. 無標記且事務緩存為空:直接寫入 Binlog。
  3. 無標記但事務緩存非空:寫入事務緩存(隨後隨事務一同提交)。

特殊情況:事務中混入非事務語句

若一個事務內包含非事務語句(如操作 MyISAM 表),Server 依規則 2 優先將該非事務語句直接寫入 Binlog,不經事務緩存。這可能導致主從不一致,生產環境應避免在同一事務中混用事務與非事務表。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved