为什么mysql决定使用索引合并,尽管我已经使用了唯一的键索引?
当某个update语句同时出现时,我们发现了一些死锁情况 从死锁日志中,我们发现死锁发生在两个具有相同结构但参数不同的sql之间 在解释一个SQL之后为什么mysql决定使用索引合并,尽管我已经使用了唯一的键索引?,mysql,Mysql,当某个update语句同时出现时,我们发现了一些死锁情况 从死锁日志中,我们发现死锁发生在两个具有相同结构但参数不同的sql之间 在解释一个SQL之后 update repay_plan_info_1 SET actual_pay_period_amount = 20742, actual_pay_principal_amount = 19998, actual_pay_interest_amount = 726, actual_pay_fee = 0,
update repay_plan_info_1
SET actual_pay_period_amount = 20742,
actual_pay_principal_amount = 19998,
actual_pay_interest_amount = 726,
actual_pay_fee = 0,
actual_pay_fine = 18,
actual_discount_amount = 0,
repay_status = 'PAYOFF',
repay_type = 'OVERDUE',
actual_repay_time = '2019-08-12 15:48:15.025'
WHERE ( user_id = '938467411690006528'
and loan_order_no = 'LN201906130129401690006528175485'
and seq_no = 2
and repay_status <> 'PAYOFF' )
但我们已经将贷款订单号+
序号`定义为unque键
PRIMARY KEY (`id`),
UNIQUE KEY `uk_repay_order` (`loan_order_no`,`seq_no`),
UNIQUE KEY `uk_repay_plan_no` (`repay_plan_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_create_time` (`create_time`)
解决方案:我们删除索引idx\u user\u id并创建另一个组合索引(user\u id、loan\u order\u noseq\u no),这解决了死锁问题
问题:
请删除图像并以文本格式替换解释语句的结果;图像很难阅读。@MadhurBhaiya,很遗憾我们已经解决了问题,我们无法解释sql来显示相同的结果,我们只有开发人员在当晚捕获的屏幕截图。所以我可以;不再有文本输出
PRIMARY KEY (`id`),
UNIQUE KEY `uk_repay_order` (`loan_order_no`,`seq_no`),
UNIQUE KEY `uk_repay_plan_no` (`repay_plan_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_create_time` (`create_time`)