mysql高级 --- explain(执行计划)

前言

explain是什么?他有什么用?怎么用?
在学习之初都应该先打出三个问号???

  • explain(执行计划),使用explain关键字可以模拟优化器执行sql查询语句,从而知道MySQL是如何处理sql语句。
  • 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,此时我们可以用到explain这个命令来查看这些SQL语句的执行计划:有没有使用上了索引、全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。
  • explain主要用于分析查询语句或表结构的性能瓶颈。

expain使用和包含的信息

  • 使用explain只要在SQL执行语句前面加上explain关键字就行了
    例如:
	explain select * from book;

得出的结果
在这里插入图片描述
包含:

  • id:选择标识符
  • select_type:表示查询的类型。
  • table:输出结果集的表
  • partitions:匹配的分区
  • type:表示表的连接类型
  • possible_keys:表示查询时,可能使用的索引
  • key:表示实际使用的索引
  • key_len:索引字段的长度
  • ref:列与索引的比较
  • rows:扫描出的行数(估算的行数)
  • Extra:执行情况的描述和说明

详细介绍

参考博客链接:MySQL Explain详解

小结

  • 我认为其中很重要的一个信息就是:type
  • type信息能简略的得出一个查询语句的性能
  • 并不是说system就是做好的,一定要达到这个级别,你的sql语句才是没有问题的
  • 一般而言:使用上能达到ref,range就是不错的了

你可能感兴趣的:(数据库,#,mysql高级-索引)