MySQL-执行计划
上官网看执行计划文档释义,移步
此部分在MySQL官方文档中的结构属于优化(Optimization)-理解查询执行计划(Understanding the Query Execution Plan)。
此部分一共包括5个部分内容:
1,使用explain优化查询
2,explain输出内容释义
3,扩展explain输出格式
4,获取命名连接的执行计划信息
5,预估查询性能
一. 使用explain优化查询
explain适用于select,delete,update,insert,replace语句
对于select语句,可以通过show warnings显示额外信息
辅助分区表的查询,这部分请参阅官网Obtaining Information About Partitions。
二. explain输出内容释义
官网给了完整的释义,翻译就是:
id:查询标识符,id相同-按顺序执行;id不同-数字越大的先执行。在联合查询(union)中可以为空。
select_type:查询类型,主要分类有:
SIMPLE 简单查询,没有用联合或子查询
PRIMARY 查询中有子部分,最外围的叫primary
含UNION关键字 联合查询
SUBQUERY 子查询
DERIVED from列表中包含的子查询
MATERIALIZED subquery的一种,物化子查询
table:表名称
partitions:表分区信息
type:连接查询类型(表连接,如left join,right join,多表连接,复杂查询等等)
从好到坏的顺序为:system,const,eq_ref,ref,fulltext,ref or null,index merge,unique subquery,index subquery,range,index(索引扫描),ALL(全表扫描)
possible_keys:可能使用的索引
key:实际使用的索引
key_len:索引中使用的字节长度,长度越短越好
ref:索引的哪一列被使用
rows:预估查询的行数
filtered:条件过滤后,留存记录数的百分比。100即是没有过滤,比如id=1这样的条件;数值越靠近100(越大)越好。
Extra:附加信息,解析查询的额外信息
三. 扩展explain输出格式
和show warnings配合使用
explain select * from city;
show warnings;
特殊标记在这里。
四. 获取命名连接的执行计划信息
举例:
SELECT CONNECTION_ID();
EXPLAIN FOR CONNECTION 750;
show processlist;
explain for connection 771;
五. 预估查询性能
通过计算磁盘寻道来预估查询性能。
计算key_len的值,
参考:
相关文章
- 从本体论开始说起——运营商关系图谱的构建及应用
- 如何成为一名数据科学家?
- 从未见过的堂兄杀了人,你的DNA是关键证据
- 20个安全可靠的免费数据源,各领域数据任你挑
- 20个安全可靠的免费数据源,各领域数据任你挑
- 阿里云李飞飞:All in Cloud时代,云原生数据库优势明显
- 基于Hadoop生态系统的一高性能数据存储格式CarbonData(性能篇)
- 大数据告诉你:10年漫威,到底有多少角色
- TigerGraph:实时图数据库助力金融风控升级
- Splunk利用Splunk Connected Experiences和Splunk Business Flow 扩大数据访问
- 大数据开发常见的9种数据分析手段
- 以免在景区看人,我爬了5W条全国景点门票数据...
- 【实战解析】基于HBase的大数据存储在京东的应用场景
- 数据科学家告诉你哪些计算机科学书籍是你应该看的
- Kafka作为大数据的核心技术,你了解多少?
- Spring Boot 整合 Redis 实现缓存操作
- 大数据学习必须掌握的五大核心技术有哪些?
- 基于Antlr在Apache Flink中实现监控规则DSL化的探索实践
- 甲骨文再次被Gartner评为分析型数据管理解决方案魔力象限领导者
- 爬取吴亦凡微博102118条转发数据,扒一扒流量的真假