sql 標準定義了四個隔離級別:**
這裡需要注意的是:mysql 預設採用的 repeatable_read隔離級別 oracle 預設採用的 read_committed隔離級別
事務隔離機制的實現基於鎖機制和併發排程。其中併發排程使用的是mvvc(多版本併發控制),通過儲存修改的舊版本資訊來支援併發一致性讀和回滾等特性。
因為隔離級別越低,事務請求的鎖越少,所以大部分資料庫系統的隔離級別都是read-committed(讀取提交內容):,但是你要知道的是innodb 儲存引擎預設使用 **repeatable-read(可重讀)**並不會有任何效能損失。
innodb 儲存引擎在分布式事務的情況下一般會用到**serializable(可序列化)**隔離級別。
什麼是髒讀 不可重複讀 幻讀
在事務a修改資料之後提交資料之前,這時另乙個事務b來讀取資料,如果不加控制,事務b讀取到a修改過資料,之後a又對資料做了修改再提交,則b讀到的資料是髒資料,此過程稱為髒讀dirty read。乙個事務內在讀取某些資料後的某個時間,再次讀取以前讀過的資料,卻發現其讀出的資料已經發生了變更 或者某些記錄...
什麼是髒讀,不可重複讀,幻讀
1.髒讀 髒讀就是指當乙個事務正在訪問資料,並且對資料進行了修改,而這種修改還沒有提交到資料庫中,這時,另外乙個事務也訪問這個資料,然後使用了這個資料。2.不可重複讀 是指在乙個事務內,多次讀同一資料。在這個事務還沒有結束時,另外乙個事務也訪問該同一資料。那麼,在第乙個事務中的兩 次讀資料之間,由於...
什麼是髒讀,不可重複讀,幻讀
1.髒讀 髒讀就是指當乙個事務正在訪問資料,並且對資料進行了修改,而這種修改還沒有提交到資料庫中,這時,另外乙個事務也訪問這個資料,然後使用了這個資料。2.不可重複讀 是指在乙個事務內,多次讀同一資料。在這個事務還沒有結束時,另外乙個事務也訪問該同一資料。那麼,在第乙個事務中的兩 次讀資料之間,由於...