一个mysql慢查询问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

一个mysql慢查询问题

2016-10-09 11:07:27 2488 1

请教一个慢查询的问题,线上每天都会偶发的有一些慢查询,explain分析之后发现大部分查询都用到了索引,并且返回的数据集也比较小,但是查询结果通常耗费2s+。以下图片是一个explan 结果:
399994397456384328

可能大家看不清图片,我简单描述一下,这个表不到100W数据,一个单表查询使用到了联合索引(其实只需要uid就够了),扫描数据大概200多行,返回1行。但是查询结果耗时2s。当然再次执行就无法重现了,因为开启了query_cache。
线上配置自建机房的虚拟机,机械硬盘,mysql是innodb引擎,是一主一从,慢查询是在主库上的。主库“innodb_buffer_pool”是8个G。

PS:先说下我的分析,类似的查询,我使用sql_no_cache排除query_cache的干扰,第一次执行会很慢,再次执行就会很快。从show profile上看耗时也都是在“sending data“上。我怀疑是虚拟机的硬盘IO有点问题,因为第一次数据从硬盘load到buffer_pool,所以比较慢,第二次无论有没有用到index,都是从buffer_pool中直接检索数据,所以比较快。但是从硬盘扫描200多行数据也实在是太慢了吧,所以怀疑是硬盘问题。(另外我们每天都会全量备份数据,而innodb_old_blocks_time设置的是0,所以可能每天都会把buffer pool中的热数据给洗一次。。。,是不是也是坑?!)。如果是硬盘问题,我该如何确认我的想法呢?

取消 提交回答
全部回答(1)
  • 厚积博观
    2019-07-17 20:14:43

    用索引的,查询索引占比30%一下的时候会比较快。多了反而慢

    0 0
相关问答

1

回答

【RDS】RDS MySQL如何终止会话?

2022-01-12 16:17:02 449浏览量 回答数 1

1

回答

RDS MySQL如何终止会话?

2022-01-07 14:15:23 876浏览量 回答数 1

0

回答

技术运维问题 - MYSQL使用 -RDS Mysql中binlog日志查看

2018-09-24 22:23:22 1402浏览量 回答数 0

1

回答

技术运维问题 - MYSQL使用 -RDS for MySQL实际内存分配情况介绍

2018-09-24 22:16:35 1664浏览量 回答数 1

0

回答

技术运维问题 - MYSQL使用 -RDS for MySQL 表分区的限制

2018-09-24 22:15:18 1702浏览量 回答数 0

0

回答

技术运维问题 - MYSQL使用 -RDS MySQL的单表尺寸限制

2018-09-24 22:14:24 1295浏览量 回答数 0

0

回答

技术运维问题 - MYSQL使用 -RDS for MySQL各timeout参数的设置

2018-09-24 22:13:19 1960浏览量 回答数 0

0

回答

技术运维问题 - MYSQL使用 -RDS for MySQL查看增量数据的方法

2018-09-24 22:12:34 1591浏览量 回答数 0

0

回答

技术运维问题 - MYSQL使用 -RDS for MySQL 报错: SELECT command denied to user 'username'@

2018-09-24 22:10:02 1941浏览量 回答数 0

0

回答

技术运维问题 - MYSQL使用 -RDS for MySQL 只读实例同步延迟原因与处理

2018-09-24 22:08:07 1691浏览量 回答数 0
+关注
0
文章
1
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载