Mysql如何查看是否使用到索引


Posted in MySQL onDecember 24, 2022

Mysql查看是否使用到索引

mysql数据库创建索引优化之后,在查询时想看下是否使用到索引,

使用执行计划查看:

mysql> explain  SELECT * FROM tb_user
 WHERE STATUS=1 limit 0,20;
+----+-------------+----------------+------------+------+----------------------+----------------------+---------+-------+-------+----------+-------+
| id | select_type | table          | partitions | type | possible_keys        | key                  | key_len | ref   | rows  | filtered | Extra |
+----+-------------+----------------+------------+------+----------------------+----------------------+---------+-------+-------+----------+-------+
|  1 | SIMPLE      | tb_news_online | NULL       | ref  | idx_tb_news_online_9 | idx_tb_news_online_9 | 5       | const | 99494 |      100 | NULL  |
+----+-------------+----------------+------------+------+----------------------+----------------------+---------+-------+-------+----------+-------+
1 row in set
 
mysql> 

EXPLAIN列的解释

  • table:显示这一行的数据是关于哪张表的
  • type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、index和ALL
  • type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL ,一般来说,得保证查询至少达到range级别,最好能达到ref。
  • possible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句
  • key:实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MYSQL会选择优化不足的索引。这种情况下,可以在SELECT语句中使用USE INDEX(indexname)来强制使用一个索引或者用IGNORE INDEX(indexname)来强制MYSQL忽略索引
  • key_len:使用的索引的长度。在不损失精确性的情况下,长度越短越好
  • ref:显示索引的哪一列被使用了,如果可能的话,是一个常数
  • rows:MYSQL认为必须检查的用来返回请求数据的行数
  • Extra:关于MYSQL如何解析查询的额外信息。将在表4.3中讨论,但这里可以看到的坏的例子是Using temporary和Using filesort,意思MYSQL根本不能使用索引,结果是检索会很慢

MySQL查看索引使用情况

show status like 'Handler_read%';    
 
show global status like 'Handler_read%';

Mysql如何查看是否使用到索引

  • Handler_read_first:索引中第一条被读的次数。如果较高,表示服务器正执行大量全索引扫描(这个值越低越好)。
  • Handler_read_key:如果索引正在工作,这个值代表一个行被索引值读的次数,如果值越低,表示索引得到的性能改善不高,因为索引不经常使用(这个值越高越好)。
  • Handler_read_next :按照键顺序读下一行的请求数。如果你用范围约束或如果执行索引扫描来查询索引列,该值增加。
  • Handler_read_prev:按照键顺序读前一行的请求数。该读方法主要用于优化ORDER BY ... DESC。
  • Handler_read_rnd :根据固定位置读一行的请求数。如果你正执行大量查询并需要对结果进行排序该值较高。你可能使用了大量需要MySQL扫描整个表的查询或你的连接没有正确使用键。这个值较高,意味着运行效率低,应该建立索引来补救。
  • Handler_read_rnd_next:在数据文件中读下一行的请求数。如果你正进行大量的表扫描,该值较高。通常说明你的表索引不正确或写入的查询没有利用索引。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
MySQL优化之如何写出高质量sql语句
May 17 MySQL
Mysql systemctl start mysqld报错的问题解决
Jun 03 MySQL
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
Jun 21 MySQL
Mysql中调试存储过程最简单的方法
Jun 30 MySQL
使用ORM新增数据在Mysql中的操作步骤
Jul 26 MySQL
MySQL中连接查询和子查询的问题
Sep 04 MySQL
mysql中整数数据类型tinyint详解
Dec 06 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
Dec 06 MySQL
关于k8s环境部署mysql主从的问题
Mar 13 MySQL
深入理解mysql事务隔离级别和存储引擎
Apr 12 MySQL
为什么MySQL8新特性会修改自增主键属性
Apr 18 MySQL
MySQL数据库表约束讲解
Jun 21 MySQL
MySQL新手入门进阶语句汇总
Sep 23 #MySQL
MySQL下载安装配置详细教程 附下载资源
Sep 23 #MySQL
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
Sep 23 #MySQL
mysql通过group by分组取最大时间对应数据的两种有效方法
Sep 23 #MySQL
MySQL中dd::columns表结构转table过程及应用详解
Sep 23 #MySQL
MySQL使用IF语句及用case语句对条件并结果进行判断 
Sep 23 #MySQL
MySQL远程无法连接的一些常见原因总结
Sep 23 #MySQL
You might like
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
thinkPHP中多维数组的遍历方法
2016/01/09 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
jQuery 选择符详细介绍及整理
2016/12/02 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
2020/09/21 Javascript
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
Django学习之文件上传与下载
2019/10/06 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
python 用struct模块解决黏包问题
2020/11/07 Python
文字自荐书范文
2014/02/10 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
学习保证书范文
2014/04/30 职场文书
房地产开发项目建议书
2014/05/16 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
会计岗位工作总结
2015/08/12 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书
一封真诚的自荐信帮你赢得机会
2019/05/07 职场文书
详解JS数组方法
2021/11/20 Javascript
MySQL 条件查询的常用操作
2022/04/28 MySQL