MySQL死锁例程:我们看一个更新不同索引的例子
CREATE TABLE `t3` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`a` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`b` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
PRIMARY KEY (`id`),UNIQUE KEY `uk_a` (`a`), KEY `idx_b` (`b`)
)
复制代码
SQL语句如下
t1
update t3 set b = '' where a = "1";
t2
update t3 set b = '' where b = "2";
复制代码
首先用前面的调试方法看看这里的两条语句加了什么锁
第一条语句(通过唯一索引更新记录)
update t3 set b = '' where a = "1";
排序后添加 3
2 个语句
更新 t3 set b = '' 其中 b = "2" ;
排序后我添加了 3。订单
序列号 | 索引 | 锁类型 |
---|---|---|
1 | idx_b | X |
2 | PRIMARY | |
2 | PRIMARY ID |
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
上一篇:MariaDB 初始化和启动故障排除 下一篇:MySQL存储引擎分析锁和排序的原理
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。