栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > DBA题库

MYSQL查询慢的主要原因有哪些?如何分析慢查询?

DBA题库 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MYSQL查询慢的主要原因有哪些?如何分析慢查询?

  • 通常所说查询慢即响应时间长。一个查询的生命周期:从客户端,到服务器,然后服务器进行解析、执行,最后返回结果给客户端。
  • 时间消耗。网络,CPU计算,执行计划,锁等待,调用底层存储引擎获取数据,I/O操作,系统调用等等。
  • 查询慢原因。不必要的额外操作,某些操作被额外的重复了很多次,某些操作被执行的太慢等等。
  • 访问的数据的太多。
  • 索引设置不合理,导致全表扫描。
  • 服务器设置不合理,造成资源紧张等原因。

如何分析慢查询?

  1. 确认SQL是否查询了大量的不必要数据。也就是太多的行,非必要的列。(PHP)

SELECt * FROM warning_event

2.  确认服务器层是否分析了大量超过所需的行。

如何判断?估算响应时间、扫描的行数和返回的行数(EXPLAIN)

SELECt * FROM warning_event WHERe assailant_id=1

EXPLAIN SELECt 1 FROM warning_event WHERe event_code=’1′ limit 1;

+————-+——+——+——+————-+

| select_type | type | ref  | rows | Extra       |

+————-+——+——+——+————-+

| SIMPLE      | ALL  | NULL |  285 | Using where |

+————-+——+——+——+————-+

event_code增加索引

+————-+——+——-+——+————————–+

| select_type | type | ref   | rows | Extra                    |

+————-+——+——-+——+————————–+

| SIMPLE      | ref  | const |    1 | Using where; Using index |

+————-+——+——-+——+————————–+

SHOW FULL PROCESSLIST

比较重要的一个字段:State

Query:正在执行查询或者发送数据到客户端

Locked:等待锁

Analyzing and statistics:收集统计信息,生成查询执行计划

Copying to tmp table [on disk]:正在执行的查询将结果集放到临时表中,GROUP BY操作、文件排序操作、UNIOn操作,on disk这个临时表在硬盘上

Sorting result:对结果集进行排序

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/277986.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号