翼度科技»论坛 编程开发 mysql 查看内容

线上SQL超时场景分析-MySQL超时之间隙锁

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
前言

之前遇到过一个由MySQL间隙锁引发线上sql执行超时的场景,记录一下。
背景说明

分布式事务消息表:业务上使用消息表的方式,依赖本地事务,实现了一套分布式事务方案
消息表名:mq_messages
数据量:3000多万
索引:create_time 和 status
status:有两个值,1 和 2, 其中99%以上的状态都是2,表示分布式事务全部已经执行完成,可以删除。
消息表处理逻辑
1. 启动一个独立的定时任务,删除status=2的历史数据,具体的sql如下:
[code]    delete from mq_messages where create_time

举报 回复 使用道具