MySQL update 执行计划使用 index_merge 导致死锁
MySQL死锁的原因有很多,总的来说,还是因为加锁的顺序不一致,下面来看一个index_merge导致的死锁。
死锁案例:
- MySQL版本:5.7.19
- 隔离级别:提交读(RC)
先看表结构,如下:
CREATE TABLE `t` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`c1` varchar(50) DEFAULT NULL,
`c2` varchar(50) DEFAULT NULL,
`ts` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_c1` (`c1`),
KEY `idx_c2` (`c2`),
KEY `idx_ts` (`ts`)
) ENGINE=InnoDB AUTO_INCREMENT=3279 DEFAULT CHARSET=utf8mb4