髒讀 幻讀 不可重複讀,索引

2021-10-09 04:22:48 字數 791 閱讀 4002

髒讀(讀取未提交資料)

a事務讀取到b事務沒有提交的資料;

不可重複讀(前後多次讀取,資料內容不一致)

在乙個事務中2次讀取資料不一致;

幻讀(前後多次讀取,資料總量不一致)

隔離級別會解決那些問題:

read uncommited: 髒讀 不可重複讀 幻讀

read commited:不可重複讀 幻讀

repeatable read(mysql預設):幻讀

serializable: 解決以上所有問題;

隔離級別越高,安全性越高,效率越低;

主鍵索引:建立主鍵約束,自帶主鍵索引;

唯一索引:建立唯一約束,自帶唯一索引;

外來鍵索引:建立外來鍵約束,自帶外來鍵索引;

普通索引

組合索引

全文索引(不建議使用,全文檢索的資料庫採用的索引就是全文索引elasticsearch

1.在特定的資料庫引擎下才有,myisam。

2.快速定位資料

在乙個表中,主鍵索引只有乙個,唯一索引可以有多個

索引設計原則:

1.索引適合於大表,經常變動的表不要加索引;

2.欄位如果經常作為查詢條件,比較適合建立索引;

3.索引可以提高查詢的效率, 但是會降低增刪改效率;

4.組合索引生效時機(最左匹配原則)

髒讀,不可重複讀,幻讀

髒讀,不可重複讀,幻讀是由於資料庫事務的隔離性導致的問題。髒讀 乙個事務讀取到了其它未提交事務操作的記錄。不可重複讀 乙個事務a內,首次查詢到一條相同記錄,然後事務b修改該條記錄並提交,事務a再次執行相同查詢,得到了事務b更新後的結果,事務a兩次相同的查詢,卻得到了不同的結果,這個叫做不可重複讀。是...

髒讀 不可重複讀 幻讀

髒讀 事務a使用了資料,但是還沒來得及提交,事務b就使用了這個資料,對於事務b來說就是髒讀。允許髒讀 sql server select from category with nolock 不可重複讀 事務a在9點和12點都會操作乙份資料,但是在10點的時候,事務b也操作了該份資料,並且使其數值進行...

髒讀 不可重複讀 幻讀

總結 對於不可重複讀和幻讀的區別是 不可重複讀圈了一塊地,這塊地不允許任何人動用,但是不管旁邊的地方是否開闢了一塊地。幻讀是不僅是圈的地,而且附近也不允許有新的地。這個對於區間查詢會有影響。所以不可重複讀和幻讀最大的區別是區間查詢的結果會不會一樣。幻讀保證結果一樣,但是不可重複讀不保證。mysql的...