最近业务偶现并发问题. 举个例子:
-- 行锁
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 条件设置索引.