myisam
和memory
儲存引擎的表
表級鎖定
bdb儲存引擎的表
頁級鎖定
innodb
的儲存引擎的表
行級鎖定
預設情況下,表鎖和行鎖是自動獲取,不需要額外的命令。但有的情況下,使用者需要明確地進行鎖表或進行事務控制,以便確保整個事務的完整性,因而需要事務控制和鎖定語句。
1、
lock table
和unlock table
lock table
鎖定當前執行緒的表。如果表被其它執行緒鎖定,則當前執行緒會等待,直到獲取鎖定的表。
unlock table
釋放當前執行緒獲得的任務鎖定。當前執行緒執行另乙個
lock table
時,或連線關閉時,當前執行緒鎖定的表被隱含地解鎖。
語法:lock tables
table_name [as alias]
[,table_name [as alias] ]…
unlock tables
session1
session2
lock table file_text read;
select film_id,tiem from file_text where film _id=1001;
select film_id,tiem from file_text where film _id=1001;
update file_txt set title=」test」 where film_id=101; 等待
unlock tables;
獲得鎖,更新操作完成;
update file_txt set title=」test」 where film_id=101;
2、事務控制
通過set autocommit
、start transaction
、commit
和rollback
等語句支援本地事務,具體語法如下:
start transaction |begin [work]
commit [work] [and [no] chain] [[no] release]
rollback [work] [and [no] chain] [[no] release]
set autocommit =
預設自動提交,
事務控制和鎖定語句
mysql支援myisam和memory引擎的表級鎖 加表鎖 lock table 釋放表鎖 unlock table 當前執行緒lock table 其它表和關閉連線隱式釋放鎖。以表鎖為例,鎖定語句到三種形式 隱式加鎖 myisam引擎select加讀鎖,其他它操作加寫鎖,不需要顯式的加read和...
MySQL的事務控制和鎖定語句
1.預設情況下 表鎖和行鎖都是自動獲得的,不需要額外命令。2.某些情況下,使用者需要明確地進行鎖表或者進行事務的控制,以便確保整個事務的完整性。3.lock tables 可以鎖定用於當前執行緒的表。如果表被其他執行緒鎖定,則當前執行緒會等待,直到可以獲取所有鎖定為止。4.unlock tables...
鎖定和行版本控制
當多個使用者同時訪問資料時,sql server 資料庫引擎使用以下機制確保事務的完整性和保持資料庫的一致性 每個事務對所依賴的資源 如行 頁或表 請求不同型別的鎖。鎖可以阻止其他事務以某種可能會導致事務請求鎖出錯的方式修改資源。當事務不再依賴鎖定的資源時,它將釋放鎖。當啟用了基於行版本控制的隔離級...