MySQL案例:一个有趣的慢查询问题分析

Posted 禅与计算机程序设计艺术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL案例:一个有趣的慢查询问题分析相关的知识,希望对你有一定的参考价值。

前言

前几天,有位客户提了一个慢查询问题,需要这边帮忙分析一下;整个排查过程还是非常有趣,涉及到一些值得关注的知识点,因此在这里记录一下。

场景分析

(1)慢查询是一条简单的update语句:UPDATE xxx_order set status = 6 where order_no = \'xxx\',耗时30s,扫描行数1400w

(2)查看表结构,确认order_no列存在索引,不存在问题

CREATE TABLE `xxx_order` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `order_no` varchar(64) NOT NULL COMMENT \'订单编号\',
  ...
  PRIMARY KEY (`id`),
  ...
  KEY `idx_order_no_status` (`order_no`,`status`),
  ...
) ENGINE=InnoDB AUTO_INCREMENT=269006244 DEFAULT CHARSET=utf8mb4 COMMENT=\'xxx\'

复制

(3)查看执行计划,

以上是关于MySQL案例:一个有趣的慢查询问题分析的主要内容,如果未能解决你的问题,请参考以下文章

MySQL删除千万级数据量导致的慢查询优化

Mysql-聚簇索排序慢案例分析

慢查询引发的车祸现场,案例分析!

常见Mysql的慢查询优化方式

性能测试四十一:sql案例之慢sql配置执行计划和索引

MySQL大事务导致的Insert慢的案例分析