例如(以下会话 id 为主键):
Session1:
mysql>select*fromt3whereidin(8,9)forupdate;
+----+--------+------+---------------------+
|id|course|name|ctime|
+----+--------+------+---------------------+
|8|WA|f|2016-03-0211:36:30|
|9|JX|f|2016-03-0111:36:30|
+----+--------+------+---------------------+
rowsinset(0.04sec)
Session2:
select*fromt3whereidin(10,8,5)forupdate;
锁等待中……
其实这个时候 id=10 这条记录没有被锁住的,但 id=5 的记录已经被锁住
了,锁的等待在 id=8 的这里
不信请看
Session3:
mysql>select*fromt3whereid=5forupdate;
锁等待中
Session4:
mysql>select*fromt3whereid=10forupdate;
+----+--------+------+---------------------+
|id|course|name|ctime|
+----+--------+------+---------------------+
|10|JB|g|2016-03-1011:45:05|
+----+--------+------+---------------------+
rowinset(0.00sec)
在其它 session 中 id=5 是加不了锁的,但是 id=10 是可以加上锁的。
案例二
在开发中,经常会做这类的判断需求:根据字段值查询(有索引),如
评论0
最新资源