千家信息网

mysql的InnoDB行锁的一点反思

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,刚参加工作时,遇到的mysql死锁的问题。具体情况如下:网页有个统计访问次数功能,然后这个次数num是int类型,网页每次被访问一次就增1,然后运营在跑批量任务的时候,造成数据量这个字段死锁了。然后D
千家信息网最后更新 2026年11月01日mysql的InnoDB行锁的一点反思

刚参加工作时,遇到的mysql死锁的问题。具体情况如下:

网页有个统计访问次数功能,然后这个次数num是int类型,网页每次被访问一次就增1,然后运营在跑批量任务的时候,造成数据量这个字段死锁了。然后DBA就查询造成死锁的原因,最后发现是我的代码造成的死锁,然后这个锅,我接下了。这个问题怎么解决的,我一直没有察觉到,因为他们没有要求修改代码。后来我一直在思考这个问题,具体是什么原因引起的死锁。由于无法重现当时的应用场景和各种服务配置,我也无法深究这个问题。后来只能认真的研究mysql的锁和java的并发控制。

N久没有动笔写文字了,表达还是有点问题,等我理清思路后,再详细写写这方面的文字,今天就简单的写一下mysql关于innoDb行锁要注意的两个地方,还有其他很多需要的地方,这里只简单记录一下,只能叫简单记录。

先说一下,innoDB行锁的现实方式,它是通过给索引上的索引项加锁来实现的。这就决定了行级锁使用的前提是通过索引条件检索数据,否则,innoDB将使用表级锁。第二点要说的即使在条件中使用了索引字段,但是是否使用索引来检索数据是由mysql通过判断不同执行计划的代价来决定的,如果mysql任务全表扫描效率更高,它就不会使用索引,这种情况下innoDB将使用表锁,而不是行锁。所以在分析mysql的锁问题时,有时候需要使用explain来检查SQL的执行计划。


问题 索引 死锁 数据 代码 任务 原因 地方 字段 情况 文字 条件 次数 网页 检索 不同 两个 代价 前提 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技靠谱吗 西安纸贵互联网科技有限公司 工业互联网科技新基建 互联网下的科技发展 青岛互联网科技公司 互联网科技作文 沃里互联网科技 上海万想互联网科技 互联网之后的科技是什么 成都铂石互联网科技做什么的 互联网科技扶贫时间 朱啸虎曾投资哪些互联网科技企业 区块链结合互联网科技 每天都有哪些好的互联网科技 济南小医互联网科技有限公司招聘 互联网界的黑科技 马化腾互联网科技教学 互联网的科技体现在哪里 优雇互联网科技有限公司 颐高云石互联网科技 互联网科技公司排名 南京欣网互联网络科技有限公司 互联网 科技公司 互联网科技大会案例 滨湖区互联网智能科技产品供应 金融科技与互联网金融相同和不同 互联网科技公司有风险吗 翼展科技 首家互联网医院 黑科技 体验场景 互联网大会 科技互联网行业投资研究
0