mysql数据库的行级锁有几种

mysql数据库的行级锁有几种,第1张

有两种模式的行锁:

1)共享锁:允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。

( Select * from table_name where ......lock in share mode)

2)排他锁:允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁和 排他写锁。(select * from table_name where.....for update)

当 web 日志中出现行锁超时错误后,很多开发都会找我来排查问题,这里说下问题定位的难点!

1. MySQL 本身不会主动记录行锁等待的相关信息,所以无法有效的进行事后分析。

2. 锁争用原因有多种,很难在事后判断到底是哪一类问题场景,尤其是事后无法复现问题的时候。

3. 找到问题 SQL 后,开发无法有效从代码中挖掘出完整的事务,这也和公司框架-产品-项目的架构有关,需要靠 DBA 事后采集完整的事务 SQL 才可以进行分析。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7131621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存