最近业务偶现并发问题. 举个例子:
-- 行锁
select * from `table` where id = 123 and a = 2 for update;上面看似行锁 , 实际上使用 for update 需要配合索引去使用, 行锁/区间锁 都需要基于索引上锁.
table表仅 配置了 a 字段的索引, 所以上面的sql是区间锁.
解决问题就需要基于 where 条件设置索引.
2022-11-17
最近业务偶现并发问题. 举个例子:
-- 行锁
select * from `table` where id = 123 and a = 2 for update;上面看似行锁 , 实际上使用 for update 需要配合索引去使用, 行锁/区间锁 都需要基于索引上锁.
table表仅 配置了 a 字段的索引, 所以上面的sql是区间锁.
解决问题就需要基于 where 条件设置索引.
本文作者: karp
原文链接: [踩坑] Mysql `for update` 行锁 踩坑
版权声明: 本站所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
免责声明: 文中如涉及第三方资源,均来自互联网,仅供学习研究,禁止商业使用,如有侵权,联系我们24小时内删除!