MySQL事務。

相關資料: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):全部事務串行執行,避免幻讀。

相關文章
相關標籤/搜索