最近业务偶现并发问题. 举个例子:
-- 行锁
select * from `table` where id = 123 and a = 2 for update;
上面看似行锁 , 实际上使用 for update
需要配合索引去使用, 行锁/区间锁 都需要基于索引上锁.
table
表仅 配置了 a
字段的索引, 所以上面的sql是区间锁.
解决问题就需要基于 where
条件设置索引.
最近业务偶现并发问题. 举个例子:
-- 行锁
select * from `table` where id = 123 and a = 2 for update;
上面看似行锁 , 实际上使用 for update
需要配合索引去使用, 行锁/区间锁 都需要基于索引上锁.
table
表仅 配置了 a
字段的索引, 所以上面的sql是区间锁.
解决问题就需要基于 where
条件设置索引.