InnoDB事務支援

2021-08-31 16:19:45 字數 469 閱讀 2453

innodb與myisam的最大不同有兩點:一是支援事務(transaction);二是採用了行級鎖。

行級鎖和表級鎖本來就有許多不同之處,另外,事務的引入也帶來了一些新問題。

**「更新丟失」。**需要應用程式對要更新的資料加必要的鎖來解決,因此,防止更新丟失應該是應用的責任。

**「髒讀」、「不可重複讀」和「幻讀」。**其實都是資料庫讀一致性問題,必須由資料庫提供一定的事務隔離機制來解決。資料庫實現事務隔離的方式

兩種解決方式:

為了解決「隔離」與「併發」的矛盾,iso/ansi sql92定義了4個事務隔離級別,每個級別的隔離程度不同,允許出現的***也不同,應用可以根據自己業務邏輯要求,通過選擇不同的隔離級別來平衡"隔離"與"併發"的矛盾

參考:

innodb事務日誌

mysql會最大程度的使用快取機制來提高資料庫的訪問效率,但是萬一資料庫發生斷電,因為快取的資料沒有寫入磁碟,導致快取在記憶體中的資料丟失而導致資料不一致怎麼辦?innodb主要是通過事務日誌實現acid特性 事務日誌包括 重做日誌redo和回滾日誌undo redo記錄的是已經全部完成的事務,就是...

innodb事務隔離級別

事務隔離級別 sql標準定義了4類隔離級別,包括了一些具體規則,用來限定事務內外的哪些改變是可見的,哪些是不可見的。低階別的隔離級一般支援更高的併發處理,並擁有更低的系統開銷。read uncommitted 讀取未提交內容 在該隔離級別,所有事務都可以看到其他未提交事務的執行結果。本隔離級別很少用...

innodb事務日誌ib logfile

mysql的innodb中事務日誌ib logfile 事務日誌或稱redo日誌 在mysql中預設以ib logfile0,ib logfile1名稱存在,可以手工修改引數,調節 開啟幾組日誌來服務於當前mysql資料庫,mysql採用順序,迴圈寫方式,每開啟乙個事務時,會把一些相關資訊記錄事務日...