两个小工具,MySQL死锁分析,新技能又Get!
发布时间:2019-07-12 07:35:40 所属栏目:建站 来源:58沈剑
导读:副标题#e# 数据库死锁,是最难调试与追踪的。 场景如下: 同一个表,事务内先插入一条记录,再更新这条记录,并发时会死锁。 并且能够复现。 可以通过什么工具模拟并发事务,查看信息,解决问题呢?这是今天要分享的内容。 一、前置准备 setsessiontransacti
再仔细一看:
建表的时候cell定义的是字符串类型。 而更新的时候,
使用的是整数类型。 类型转换,会导致全表扫描,出现锁升级,锁住全部记录。 加上引号,再次通过explain验证一下:
果然印证了猜想:
这下全部可以解释了。 总结 就本例而言:需要注意字符串与整数之间的强制类型转换,有时候少一个引号,就会使得行锁升级为表锁。 死锁是MySQL中非常难调试的问题,常见的思路与方法有:
思路比结论更重要,希望大家有收获。 【本文为51CTO专栏作者“58沈剑”原创稿件,转载请联系原作者】 ![]() 戳这里,看该作者更多好文 【编辑推荐】
点赞 0 (编辑:惠州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |