程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql隔離級別對並發插入的影響

mysql隔離級別對並發插入的影響

編輯:關於MYSQL數據庫
 REPEATABLE READ 是InnoDB 的默認隔離級別。帶唯一搜索條件使用唯一索引的SELECT ... FOR UPDATE, SELECT ... LOCK IN SHARE MODE, UPDATE 和DELETE 語句只鎖定找到的索引記錄,而不鎖定記錄前的間隙。用其它

隔離級別對並發插入的影響
REPEATABLE READ 是InnoDB 的默認隔離級別。帶唯一搜索條件使用唯一索引的SELECT ... FOR UPDATE, SELECT ... LOCK IN SHARE MODE, UPDATE 和DELETE 語句只鎖定找到的索引記錄,而不鎖定記錄前的間隙。用其它搜索條件,這些操作采用next-key 鎖定,用next-key 鎖定或者間隙鎖定鎖住搜索的索引范圍,並且阻止其它用戶的新插入。
在持續讀中,有一個與READ COMMITTED 隔離級別重要的差別:在這個級別,在同一事務內所有持續讀讀取由第一次讀所確定的同一快照。這個慣例意味著如果你在同一事務內發出數個無格式SELECT 語句,這些SELECT 語句對相互之間也是持續的。
READ COMMITTED 隔離級別是一個有些象Oracle 的隔離級別。所有SELECT ...FOR UPDATE 和SELECT ... LOCK IN SHARE MOD 語句僅鎖定索引記錄,而不鎖定記錄前的間隙,因而允許隨意緊挨著已鎖定的記錄插入新記錄。UPDATE 和DELETE 語句使
用一個帶唯一搜索條件的唯一的索引僅鎖定找到的索引記錄,而不包括記錄前的間隙。
在范圍類型UPDATE 和DELETE 語句,InnoDB 必須對范圍覆蓋的間隙設置next-key鎖定或間隙鎖定以及其它用戶做的塊插入。這是很必要的,因為要讓MySQL 復制和恢復起作用,“幽靈行”必須被阻止掉。
如果應用是從基於Oracle 的應用遷移到MySQL 數據庫的,那麼建議使用該隔離級別提供數據庫服務,因為該隔離級別是最接近Oracle 的默認隔離級別的,遷移可能遇到的鎖問題最小。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved