
MySql之Explain
从表中读取数据 执行 Where 过滤 执行 Join 连接 分析 Group by 和 Having 条件 展开 Select 列 6._Application of Order by 限制结果数
发布日期:2021-05-14 21:58:05
浏览次数:20
分类:精选文章
本文共 1025 字,大约阅读时间需要 3 分钟。
1. Explain 简介
Explain 是 MySQL 提供的一个工具,用于分析数据库中的 SQL 语句执行情况,帮助开发人员了解数据库如何处理查询请求,从而发现性能瓶颈并优化数据库查询。
2. Explain 详解
2.1 说明如何使用 Explain
要使用 Explain 查看 SQL 执行计划,可以在 SQL 语句前加上 EXPLAIN
关键字。例如:
EXPLAIN select * from emp where name = 'Jefabc';
执行后,结果会显示一个 10 列的表格,列名如下:
- id:操作的序号
- select_type:查询类型
- table:查询到的表名
- type:连接类型
- possible_keys:可能使用的索引
- key:实际使用的索引
- key_len:索引的长度
- ref:索引列的比较内容
- rows:估算的扫描行数
- Extra:额外的执行信息
2.2 key 列信息的意义
Each key 对应一个索引字段,key_len
列显示索引字段的数据类型长度。ref
列则显示索引字段与查询字段的比较情况。
2.3 Extra 列的重要性
Extra
列提供了额外的优化信息,其中包括:
- Using filesort:说明使用了外部排序而不是基于索引的排序
- Using temporary:使用了临时表来存储中间结果
- Using index:使用了覆盖索引优化
- Using where:使用了 Where 子句进行过滤
- Impossible where: Where 子句的条件无法满足
- Distinct:优化了 Distinct 操作
3. SQL 执行顺序
要优化 SQL 查询,需要清楚了解 SQL 的执行顺序。以下是常见的 SQL 执行顺序模型:
4. 扩展说明
- Extended Keyword:可在 Explain 后添加
+ bpp
参数,显示每个字段被访问的次数。 - Warnings显示:使用
SHOW_WARNINGS
命令可以显示优化过程中的警告信息和查询重写信息。
通过合理分析 Explain 结果,可以有效发现索引未被优化、查询不满足条件等问题,从而优化数据库性能和减少运行时间。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月29日 17时33分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
SpringBoot使用RedisTemplate简单操作Redis的五种数据类型
2019-03-10
国标流媒体服务器以ROOT身份运行提示“permission denide”报错解决
2019-03-10
qt中转到槽后如何取消信号与槽关联
2019-03-10
qt问题记录-spin box与double spin box
2019-03-10
移动端事件
2019-03-10
css 图片按比例缩放
2019-03-10
小程序form表单里面buton点击事件失效
2019-03-10
微信小程序placeholder设置自定义样式
2019-03-10
spring-day01
2019-03-10
spring的值注入与组件扫描
2019-03-10
C#跨窗体程序调用方法的具体操作
2019-03-10
C#中创建Android项目
2019-03-10
统计学之变异系数与是非标志
2019-03-10
关于继承的一些基本知识
2019-03-10
抖音发布黄金时间段,抖音上热门最佳时间
2019-03-10
我的图床~
2019-03-10
Thymeleaf sec:authorize 标签不生效
2019-03-11
Iterable与Iterator
2019-03-11