相關資料:https://zhuanlan.zhihu.com/p/70701037 https://zhuanlan.zhihu.com/p/59061106數據庫
1、事務。併發
一、概念。事務是由一組SQL語句組成的邏輯處理單元。atom
二、事務的屬性(ACID)。事務
i:原子性(atomicity):事務是最小的工做單元,整個事務中的全部操做要麼所有提交成功,要麼所有失敗回滾。ci
ii:一致性(consistency)::一個事務執行先後數據庫的數據必須保持一致性狀態。it
iii:隔離性(isolation):多個併發事務之間要相互隔離。io
iv:持久性(durability):事務提交後,其所作的修改會永久保存到數據庫中。table
三、事務的隔離級別。數據
i:讀未提交(Read Uncommitted):當前事務中的修改,即便沒有被提交,對其餘事務也是可見的。可能致使:髒讀---事務能夠讀取到未提交的數據。查詢
ii:讀已提交(Read Committed):被讀取的數據能夠被其餘事務修改。可能致使:不可重複讀----在一個事務內,屢次讀同一個數據。在這個事務尚未結束時,另外一個事務也訪問該同一數據。那麼,在第一個事務的兩次讀
數據之間。因爲第二個事務的修改,那麼第一個事務讀到的數據可能不同,這樣就發生了在一個事務內兩次讀到的數據是不同的,所以稱爲不可重複讀,即原始讀取不可重複。一句話
解釋:一個事務內,兩次相同的查詢,返回了不一樣的數據。
iii:可重複讀(Repeatable Read):保證同一個事務中屢次讀取一樣的記錄,結果是同樣的。可能致使:幻讀----一個事務T1按相同的查詢條件從新讀取之前檢索過的數據,卻發現其餘事務T2插入了知足其查詢條件的新數
據,這種現象就稱爲「幻讀」。一句話解釋:事務A 讀取到了事務B提交的新增數據。 MySql默認。
iv:串行化(Serializable):全部事務串行執行,避免幻讀。