当
begin
select * from xx_order where id =1 for UPDATE
没COMMIT
能向xx_order 表插入数据,不能更改id 为1 的数据,其他可以,说明是行级锁
当
begin
select * from xx_order for UPDATE
没COMMIT
不能向xx_order 表插入数据,以及更改数据,说明已表级锁
当
begin
select * from xx_order LOCK IN SHARE MODE;
没COMMIT
在查询语句后面增加 LOCK IN SHARE MODE
,Mysql会对查询结果中的每行都加共享锁,当没有其他线程对查询结果集中的任何一行使用排他锁时,可以成功申请共享锁,否则会被阻塞。其他线程也可以读取使用了共享锁的表,而且这些线程读取的是同一个版本的数据。