mysql explain的用法
mysql explain的用法
mysql explain的用法MySQL的EXPLAIN命令显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。
一、通过expalin可以得到
2、在语句结尾(;之前)加上\G能够更清晰的查看.
1)、all
全表扫描,效果是最不理想的。
2)、const
const是在where条件以常量作为查询条件,最多只会有一条记录匹配,由于是常量,实际上只须要读一次。
3)、eq_ref
最多只会有一条匹配结果,一般是通过主键或唯一键索引来访问。一般会出现在连接查询的语句中。
4)、fulltext
进行全文索引检索。
5)、index
全索引扫描。MySQL在扫描表时按索引次序进行而不是行。
6)、index_merge
查询中同时使用两个(或更多)索引,然后对索引结果进行合并(merge),再读取表数据。
7)、index_subquery
子查询中的返回结果字段组合是一个索引(或索引组合),但不是一个主键或唯一索引。
8)、rang
索引范围扫描。一个有限制的索引扫描,它开始于索引里的某一点,返回匹配这个值域的行(显而易见的范围扫描.即带有BETWEEN或在WHERE子句中带有>的查询,当MySQL使用索引去查找一系列值的时候,如IN()和OR列表,也为显示的范围扫描)
9)、ref
也叫索引查找,他返回所有匹配某单个值的行,它可能会找到多个符合条件行。
10)、ref_or_null
与ref的唯一区别就是在使用索引引用的查询之外再增加一个空值的查询。
11)、system
系统表,表中只有一行数据;
12)、unique_subquery
子查询中的返回结果字段组合是主键或唯一约束。
5、possible_keys
这一列显示了查询可以使用哪些索引,是基于查询访问的列和使用的比较操作符来判断的.如果没有任何索引可以使用,就会显示成null
6、key
显示了MySQL决定采用哪个索引来优化对该表的访问
7、key_len
1)、key_len列显示mysql决定使用的键长度,如果键是null,则长度为null。
2)、显示MySQL在索引里使用的字节数.举个例子就是在查询中使用到了主键,而主键的数据类型为INT,则为4,SMALLINT则为2
3)、使用的索引长度,一般越短越好。
8、Ref
显示了之前的表在key列记录的索引中查询值所用到的列或常量。
9、rows
显示的是MySQL为了找到所需的值而要读取的行数.
10、extra
在此显示的是在其他列不适合显示的额外信息,主要可能会是以下内容:
1)、Distinct
查找distinct 值,当mysql找到了第一条匹配的结果时,将停止该值的查询,转为后面其他值查询。
2)、Full scan on NULL key
子查询中的一种优化方式,主要在遇到无法通过索引访问null值的使用。
3)、Using index
MySQL将使用覆盖索引,以避免访问表(就是仅仅使用了索引中信息而没有读取表中)
4)、Using where
意味着MySQL服务器将在存储引擎检索行后在进行过滤(将会通过WHERE条件来筛选存储引擎返回的记录)
5)、Using temporary
意味着MySQL在对查询结果排序时会用到一个临时表.
6)、Using filesort
看到这个的时候,查询就需要优化了。意味着MySQL会对结果使用一个外部索引排序,而不是按索引次序从表里读出来.
- django mysql设置(Django框架使用mysql视图操作示例)
- mysql 死锁产生的原因和必要条件(Mysql查看死锁与解除死锁的深入讲解)
- 最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)(最新版MySQL 8.0.22下载安装超详细教程Windows 64位)
- mysqlcount使用技巧(MySQL巧用sum、case和when优化统计查询)
- mysql与oracle体系结构(详解MySQL实时同步到Oracle解决方案)
- mysql查看视图注释(详解MySQL的sql_mode查询与设置)
- navicat连接mysql是远程连接吗(详解Navicat远程连接mysql很慢)
- 怎么知道sqlyog连接的哪个mysql(SQLyog连接MySQL8.0报2058错误的完美解决方法)
- 阿里云mysql如何接入(阿里云服务器安装Mysql数据库的详细教程)
- 阿里云的自带mysql怎么开启(阿里云云服务器mysql密码找回的方法)
- mysqlexplain解析(Mysql explain用法与结果深入分析)
- mysqljson字段查询(Mysql 查询JSON结果的相关函数汇总)
- 查询mysql 死锁(MySQL线上死锁分析实战)
- mysql用户删除了如何设置(MySQL两种删除用户语句的区别delete user和drop user)
- centos7.5安装mysql教程(CentOS8下MySQL 8.0安装部署的方法)
- mysql性能怎么看(是什么影响了 MySQL 的性能?)
- 一个30岁男人外遇失败的全过程(一个30岁男人外遇失败的全过程)
- 《无敌破坏王2》 不聊彩蛋,聊聊我从动画里看到的现实那些事儿(无敌破坏王2不聊彩蛋)
- 《寄生虫》 三观不正 人类悲欢从来不相通,感同身受也并非本能(寄生虫三观不正)
- 这部动漫中的女孩子,可比101女孩更加励志(这部动漫中的女孩子)
- 《白狐的人生》热拍 贾征宇偶像包袱难自弃 图(白狐的人生热拍)
- 七夕取消了,牛郎织女没做核酸七夕已经取消(牛郎织女没做核酸七夕已经取消)
热门推荐
- python中三种基本的数值类型(python基础知识一变量与简单数据类型详解)
- mongodb简单介绍和安装
- 面向对象的装封、继承、多态的概念理解
- laravel api 调试(Laravel框架自定义公共函数的引入操作示例)
- php使用yield处理并发(Yii框架中使用PHPExcel的方法分析)
- sqlserver怎么显示变量所占字节数(SQL Server中关于基数估计计算预估行数的一些方法探讨)
- jquery脚本检测密码强度
- docker部署go项目(Gogs+Jenkins+Docker 自动化部署.NetCore的方法步骤)
- mysql导出数据的方法
- centos安装sql server(Centos 7.3下SQL Server安装配置方法图文教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9