基本命令
查看那张表被锁住,其中In_use字段大于0则表被锁。
show open tables;
给某张表上锁
lock table 【表名】【read/write】;
释放所有的锁
unlock tables;
查看引擎
show engines;
查看自动提交状态
show variables like 'autocommit';
表锁
以下是在MyISAM引擎下,MyISAM偏读。
准备
t_logs 表一张。
session1 给t_logs上读锁或写锁。
session2 不做任何与锁有关操作。
读锁
读锁也叫共享锁。
Session1
Session2
可以查询 t_logs 表
可以查询 t_logs 表
不可以更新 t_logs 表
不可以更新 t_logs 表
会阻塞,必须等待锁释放
不可以查询别的表
可以查询别的表
不可以更新别的表
可以更新别的表
总结:当前会话为某张表加了读锁,当前会话仅仅能读取加锁的表,任何其它操作都不能做。而其他会话对此表只有读的权限,但除此之外的表,则正常操作。
写锁
写锁也叫排它锁。
Session1
Session2
可以查询 t_logs 表
不可以查询 t_logs 表
会阻塞
可以更新 t_logs 表
不可以更新 t_lo