sqlserver所指定的表級鎖定提示有如下幾種
1. holdlock
: 在該錶上保持共享鎖,直到整個事務結束,而不是在語句執行完立即釋放所新增的鎖。
2. nolock
:不新增共享鎖和排它鎖,當這個選項生效後,可能讀到未提交讀的資料或「髒資料」,這個選項僅僅應用於select語句。
3. paglock
:指定新增頁鎖(否則通常可能新增表鎖)
4. readcommitted用與執行在提交讀隔離級別的事務相同的鎖語義執行掃瞄。預設情況下,sql server 2000 在此隔離級別上操作。
5. readpast
: 跳過已經加鎖的資料行,這個選項將使事務讀取資料時跳過那些已經被其他事務鎖定的資料行,而不是阻塞直到其他事務釋放鎖,readpast
僅僅應用於read committed隔離性級別下事務操作中的select語句操作
6. readuncommitted
:等同於nolock
。7. repeatableread
:設定事務為可重複讀隔離性級別。
8. rowlock:使用行級鎖,而不使用粒度更粗的頁級鎖和表級鎖。
9. serializable:用與執行在可序列讀隔離級別的事務相同的鎖語義執行掃瞄。等同於 holdlock
。10. tablock:指定使用表級鎖,而不是使用行級或頁面級的鎖,sql server在該語句執行完後釋放這個鎖,而如果同時指定了holdlock
,該鎖一直保持到這個事務結束。
11. tablockx:指定在表上使用排它鎖,這個鎖可以阻止其他事務讀或更新這個表的資料,直到這個語句或整個事務結束。
12. updlock
:指定在讀表中資料時設定更新鎖(update lock)而不是設定共享鎖,該鎖一直保持到這個語句或整個事務結束,使用updlock
的作用是允許使用者先讀取資料(而且不阻塞其他使用者讀資料),並且保證在後來再更新資料時,這一段時間內這些資料沒有被其他使用者修改
select * from table with (holdlock) 其他事務可以讀取表,但不能更新刪除
select * from table with (tablockx) 其他事務不能讀取表,更新和刪除
mysql的行級鎖 表級鎖 頁級鎖
鎖是在執行多執行緒時用於強行限制資源訪問的同步機制,即用於在併發控制中保證對互斥要求的滿足 行級鎖 是mysql中鎖定粒度最細的一種鎖,表示只針對當前操作的行進行加鎖。行級鎖能大大減少資料庫操作的衝突。其加鎖粒度最小,但加鎖的開銷也最大。行級鎖分為共享鎖和排他鎖 特點 開銷大,加鎖慢,會出現死鎖 鎖...
MySQL行級鎖 表級鎖 頁級鎖
mysql資料庫由於其自身架構的特點,存在多種資料儲存引擎,每種儲存引擎所針對的應用場景特點都不太一樣,為了滿足各自特定應用場景的需求,每種儲存引擎的鎖定機制都是為各自所面對的特定場景而優化設計,所以各儲存引擎的鎖定機制也有較大區別。mysql各儲存引擎使用了三種型別 級別 的鎖定機制 表級鎖定,行...
表級鎖的mysql讀寫 Mysql的表級鎖
我們首先需要知道的乙個大前提是 mysql的鎖是由具體的儲存引擎實現的。所以像mysql的預設引擎myisam和第三方外掛程式引擎 innodb的鎖實現機制是有區別的。可根據不同的場景選用不同的鎖定機制。mysql有三種級別的鎖定 表級鎖定 頁級鎖定 行級鎖定 一 定義 每次鎖定的是一張表的鎖機制就...