MySQL表共享讀鎖(Table Read Lock)和表獨佔寫鎖(Table Write Lock)
阿新 • • 發佈:2019-01-08
-- 表鎖
-- 檢視哪些表被鎖
show open TABLES
-- 建立一個張表演示表鎖,使用myisam儲存引擎
CREATE table test_lock(
id int,
name VARCHAR(255)
)engine myisam;
-- 給表加鎖讀
lock table test_lock READ;
-- 會阻塞自己和其他使用者的update操作
insert into test_lock(id,name)VALUES(2,'liyue');
update test_lock set name='l' where id=1;
SELECT * from test_lock;
-- 解鎖
UNLOCK TABLES;
-- 給表加獨佔寫鎖
lock table test_lock WRITE;
-- 會阻塞其他使用者的update操作,對自己update後沒有釋放鎖的情況下
-- 只能在當前視窗檢視不可開啟一個新的視窗要不會視為一個新的session,由於鎖被佔用而無法檢視
update test_lock set name='fi' where id=1;
SELECT * from test_lock;