1. 程式人生 > 其它 >MySQL InnoDB的事務

MySQL InnoDB的事務

InnoDB引擎與其他mysql引擎最大的區別是其引入了事務的概念,使用事務可以保證

事務的四大特性
原子性: 要麼全部成功,要麼全部失敗。
**隔離性:**各個事務的執行不能被其他事務干擾。
永續性: 操作執行結果會被持久化到磁碟。
一致性: 事務執行結果必須從一個一致狀態到另一個一致狀態,中間不能有其他狀態。
原子性,永續性,隔離性的目的也是為了保障資料的一致性!

InnoDB的四種隔離級別
**READ UNCOMMITTED 讀未提交 (RU) **會產生髒讀
READ COMMITTED 讀已提交 (RC) 會產生不可重複讀
REPEATABLE READ 可重複讀 (RR) 會產生幻讀
**SERIALIZABLE 串形化 ** 不會有讀問題,但是效能較差
隔離級別產生的讀問題
**髒讀:**讀到其他事務未提交的資料。

不可重複讀: 讀到其他事務已經提交的事務,導致一次事務中,兩次查詢同一條記錄不一致。

幻讀: 幻讀,並不是說兩次讀取獲取的結果集不同,幻讀側重的方面是某一次的 select 操作得到的結果所表徵的資料狀態無法支撐後續的業務操作。更為具體一些:select 某記錄是否存在,不存在,準備插入此記錄,但執行 insert 時發現此記錄已存在,無法插入,此時就發生了幻讀。