一致性是指資料處於一種語義上的有意義且正確的狀態。一致性是對資料可見性的約束,保證在一個事務中的多次操作的資料中間狀態對其他事務不可見的。因為這些中間狀態,是一個過渡狀態,與事務的開始狀態和事務的結束狀態是不一致的。
舉個粒子,張三給李四轉賬100元。事務要做的是從張三賬戶上減掉100元,李四賬戶上加上100元。一致性的含義是其他事務要麼看到張三還沒有給李四轉賬的狀態,要麼張三已經成功轉賬給李四的狀態,而對於張三少了100元,李四還沒加上100元這個中間狀態是不可見的。
那麼反駁的聲音來了:
要麼轉賬操作全部成功,要麼全部失敗,這是原子性。從例子上看全部成功,那麼一致性就是原子性的一部分咯,為什麼還要單獨說一致性和原子性?
你說的不對。在未提交讀的隔離級別下是事務內部操作是可見的,明顯違背了一致性,怎麼解釋?
好吧,需要注意的是:
原子性和一致性的的側重點不同:原子性關注狀態,要麼全部成功,要麼全部失敗,不存在部分成功的狀態。而一致性關注資料的可見性,中間狀態的資料對外部不可見,只有最初狀態和最終狀態的資料對外可見。但是因為某某效能的關係,對於一致性做了妥協。
MySQL事務一致性理解
相關文章
- MySQL 中的事務理解MySql
- 從根上理解 MySQL 的事務MySql
- 理解MySQL事務隔離級別MySql
- MySQL事務(二)事務隔離的實現原理:一致性讀MySql
- 理解mysql的事務隔離級別MySql
- 深入理解 MySQL—鎖、事務與併發控制MySql
- 深入理解Mysql——鎖、事務與併發控制MySql
- mysql 事務MySql
- mysql事務MySql
- MySQL事務(一)認識事務MySql
- 對事務的理解
- 理解分散式事務分散式
- Redis--事務理解Redis
- 用友微服務事務一致性實踐微服務
- MyBatis 事務管理解析:顛覆你心中對事務的理解!MyBatis
- MySQL--事務MySql
- MySQL-事務MySql
- MySQL--->事務MySql
- MySQL 三 事務MySql
- MySQL索引事務MySql索引
- MySQL 事務操作MySql
- 如何理解mysql 的事務隔離級別 repeatable readMySql
- 分散式事務(2)---強一致性分散式事務解決方案分散式
- 深入剖析分散式事務一致性分散式
- mysql關於redo事務日誌ib_logfile的理解MySql
- MySQL事務處理MySql
- 細談Mysql事務MySql
- MySQL事務隔離MySql
- MySQL 事務和鎖MySql
- MySQL事務與鎖MySql
- MySQL 事務隔離MySql
- MySQL事務和鎖MySql
- mysql基礎_事務MySql
- MySql中的事務MySql
- MySQL 事務機制MySql
- MySQL 事務日誌MySql
- 分散式事務,強一致性方案有哪些?|分散式事務系列(二)分散式
- 資料庫事務與 MySQL 事務總結資料庫MySql