我在一个int型字段上建了索引,这个字段a大概有(0,1,2,3,4,5,6)这几个值
我使用
select * from table where a in (3,5) for update
然后再另一个session里执行insert
字段A为0,1,6的时候,不会发生锁等待,
字段A为2,3,4,5的时候,发生锁等待
3,5锁等待我能理解,2,4为什么会发生锁等待
我又尝试了一下方法
1、where 条件增加 主键<当前最大主键值
2、使用子查询把select pk from table where pk in (select pk from table where a in (3,5))
都没有效果,为什么?!子查询反而好像整张表都锁了,所有insert都等待了
有没有什么办法可以之锁定3,5的记录,其他记录不影响。