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创建索引需要了解的
Apr 08 MySQL
MySQL性能压力基准测试工具sysbench的使用简介
Apr 21 MySQL
MySQL 分页查询的优化技巧
May 12 MySQL
详解mysql三值逻辑与NULL
May 19 MySQL
mysql中between的边界,范围说明
Jun 08 MySQL
MySQL如何解决幻读问题
Aug 07 MySQL
浅谈MySQL函数
Oct 05 MySQL
mysql中int(3)和int(10)的数值范围是否相同
Oct 16 MySQL
MySQL窗口函数的具体使用
Nov 17 MySQL
Mysql 如何合理地统计一个数据库里的所有表的数据量
Apr 18 MySQL
MySQL优化之慢日志查询
Jun 10 MySQL
MySQL控制流函数(-if ,elseif,else,case...when)
Jul 07 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
php 常用类整理
2009/12/23 PHP
PHP常用数组函数介绍
2014/07/28 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
php简单中奖算法(实例)
2017/08/15 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
jQuery创建插件的代码分析
2011/04/14 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
用Python编写生成树状结构的文件目录的脚本的教程
2015/05/04 Python
详解Python中的日志模块logging
2015/06/19 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
Django密码系统实现过程详解
2019/07/19 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
幼儿园中秋节活动反思
2014/02/16 职场文书
经营目标管理责任书
2014/07/25 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
委托书英文
2015/01/28 职场文书
工作证明格式范文
2015/06/15 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
投资入股协议书
2016/03/22 职场文书
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技