複習鞏固加深印象
一。事務(acid原子性,隔離性,一致性,永續性)
二。事務隔離級別
通常併發事務處理:
1》寫-寫,存在更新丟失問題
2》讀-寫,有隔離性問題,可能遇到髒讀,不可重複讀,幻讀
其中:1.髒讀:a事務讀到b未提交的資料
2.不可重複讀:a事務第二次讀時讀到了b事務提交的寫資料,可能導致2次讀到的資料不一致
3.幻讀:a事務根據讀到的資料進行寫操作,同時b也根據此資料進行寫操作並提交。a提交完 b發現自己的資料丟失了
ab事務根據基礎資料進行操作提交後發現結果可能並不是如自己所想。
不可重複讀和幻讀很類似,但也不同,前者能讀到其它事務已經提交的資料,後者讀不到其它事務已提交的資料!相同的是都是2次確認發現不對,且都是由於其他事務介入導致結果異常。解決方案很多,但核心思想,個人認為還是將事務序列化,只不過表現方式不同而已。
serializable(可序列化),最高端別,典型的悲觀鎖思維,資料到這裡不會出現併發問題(序列執行),安全性最高。可以解決幻讀,不可重複讀,髒讀。
repeatable-read(可重複讀)對於同乙份資料,任何事務在其事務週期內所讀到的結果都是一樣的。可以解決不可重複讀,髒讀。 mysql預設事務隔離級別。
read-committed(已提交讀)可以讀到已提交的資料。可以解決髒讀。
read-uncommitted(讀一切)
MySQL事物隔離級別
mysql其實是分為server層和引擎層。server層包括 聯結器 分析器 優化器 執行器 以及查詢快取。在這裡執行的一些mysql自己的一些邏輯,比如函式 儲存過程 檢視 觸發器,但是還沒有真正的去資料檔案中讀取資料。引擎層 innodb myisam memory 負責資料的查詢和提取。現在...
mysql事物隔離級別
事物是區分檔案儲存系統與nosql資料庫重要特性之一,其存在的意義是為了保證即使在併發情況下也能正確的執行crud操作。怎樣才算是正確的呢?這時提出了事物需要保證的四個特性即acid a 原子性 atomicity c 一致性 consistency i 隔離性 isolation d 永續性 du...
MySQL 事物隔離級別
1.什麼是事物 訪問並可能更新資料庫的乙個完整的程式執行單元 unit 2 事物必須滿足acid特性 a,atomic,原子性,要麼都提交,要麼都失敗,不能一部分成功,一部分失敗。c,consistent,一致性,事物開始及結束後,資料的一致性約束沒有被破壞 i,isolation,隔離性,併發事物...