qidao123.com技术社区-IT企服评测·应用市场

标题: MySQL EXPLAIN 详解 [打印本页]

作者: 大号在练葵花宝典    时间: 6 天前
标题: MySQL EXPLAIN 详解
一、EXPLAIN 是什么?

EXPLAIN 是 MySQL 提供的性能分析工具,用于检察 SQL 查询的执行计划(即优化器怎样执行查询)。它通过模拟查询过程(不实际执行 SQL)返回一个表格,展示索引利用、表连接方式、扫描行数等关键信息,资助开辟者诊断性能瓶颈并优化查询。
核心作用


二、为什么要用 EXPLAIN?


三、怎样利用 EXPLAIN?

根本语法
  1. EXPLAIN [FORMAT=TRADITIONAL|JSON|TREE] SELECT ...;
复制代码

示例
  1. EXPLAIN SELECT * FROM users WHERE age > 30;
复制代码
输出结果示例:
idselect_typetabletypepossible_keyskeykey_lenrowsExtra1SIMPLEusersrangeageage41000Using where
四、执行计划指标详解

1. id


2. select_type


3. type


4. key 与 possible_keys


5. rows


6. Extra


指标含义常见值/说明id查询的序列号(子查询执行顺序)数值越大越先执行;相同 id 按从上到下顺序执行。select_type查询范例SIMPLE(简单查询)、PRIMARY(外层查询)、SUBQUERY(子查询)等。table当前操纵的表名表名或别名,可能为 <derivedN>(派生表)或 <unionN>(UNION 结果)。type访问范例(性能关键指标)const(主键)、ref(索引)、range(范围索引)、ALL(全表扫描)等。possible_keys可能利用的索引优化器评估可选的索引,若为 NULL 表示无可用索引。key实际利用的索引若为 NULL 表示未利用索引。key_len索引利用的字节数长度越短效率越高(比方复合索引是否完整利用)。rows预估需要扫描的行数数值越大性能越差(需联合过滤条件判断)。Extra额外信息(紧张优化线索)Using index(覆盖索引)、Using where(过滤)、Using filesort(排序)等。
五、不利用 EXPLAIN 可能出现的题目


六、总结


通过 EXPLAIN 分析,可将模糊的“慢查询”转化为具体的优化动作,大幅提升数据库性能!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4