MySQL從入門到放棄(三)

2021-10-08 13:58:31 字數 905 閱讀 6192

三、事務特性分析

四、併發事務的問題

五、隔離級別

事務具有原子性、一致性、永續性、隔離性這四個特性,事務通過確保原子性、隔離性、永續性來確保事務的一致性。

事務的原子性是指事物是最小的執行單位,不允許分割,事務內的一系列操作,要不都執行,要不都不執行。

事物的提交只會導致資料庫的狀態從乙個一致性狀態到另外乙個一致性狀態,換句話來說就是事務一系列操作的中間操作導致的中間不一致狀態不會讓別的事務看到。一致性狀態指的是多個事務訪問到的資料庫的資料和資料結構是一致的。

事務的隔離性是指併發事務在執行過程中不能相互影響,其對資料庫的影響和它們序列執行時一樣。(資料庫綜合考慮效能和資料一致性,提出了四個隔離級別,可序列化是最高隔離級別)

乙個事務被提交之後。它對資料庫中資料的改變是持久的,即使資料庫發生故障也不會導致提交改變結果的丟失。

a事務執行過程中,b事務讀取了a事務的修改。但是由於某些原因,a事務可能沒有完成提交,發生rollback了操作,則b事務所讀取的資料就會是不正確的。這個未提交資料就是髒讀(dirty read)。

b事務讀取了兩次資料,在這兩次的讀取過程中a事務修改了資料,b事務的這兩次讀取出來的資料不一樣。b事務這種讀取的結果,即為不可重複讀(nonrepeatable read)。

b事務讀取了兩次資料,在這兩次的讀取過程中a事務新增了資料,b事務的這兩次讀取出來的集合不一樣,即為幻讀(phantom read)。

隔離級別

髒讀幻讀

不可重複讀

讀未提交

允許允許

允許讀已提交

不允許允許

允許可重複讀

不允許允許

不允許序列化

不允許不允許

不允許隔離級別越高,越能保證資料的完整性和一致性,但是對併發效能的影響也就越大。

MySQL從入門到放棄(三)

接著上次的繼續學習哈,我們還是按照之前的步驟開啟mysql,選擇資料庫,繼續操作我們的emp表 delete顧名思義,就是刪除的意思,所以delete就是刪除語句,使用delete語句刪除表中的資料,具體的操作 delete from 表名 where 行 如果不用where語句,則把整個表都刪了,...

Python 從入門到放棄(三)

2011 12 11 mon 13 58 直接建立 phonebook phonebook out 224 phonebook dict alice 1234 bob 2345 注意關鍵字不能是expression,不是 alice 而是alice phonebook out 228 或者通過鍵值對...

swoole 從入門到放棄(三)

bool swoole process exec string execfile,array args function swoole process start int 執行fork系統呼叫,啟動程序 array swoole process wait bool blocking true 結束執...