mysql 重新整理——索引优化explain字段介绍二 [十]
前言
紧接上文。
正文
type
type字段有如下类型:
1.all
2.index
3.rang
4.ref
5.eq_ref
6.const,system
7.null
最好到最差的顺序为:
system>const>eq_red>ref>range>index>all
优化的标准为至少达到range级别,最好是ref级别。
system 表只有一行记录,这是const类型的特列,基本不会出现。
const:表示通过一次就找到了,const 一般是在primary_key 或者 unique 索引。因为只匹配一行数据,所以很快。
eq_ref:唯一索引扫描,对每个索引键,只有一条记录与之匹配。
ref:非唯一索引扫描,返回匹配某个值的所有行。
range:只检索给定范围的行,使用一个索引来选择行。一般出现在between、>、<、in等查询中。
index:select id from t1 这时候是找出全部的索引,而不必去扫描表。
all 表示全表扫描来查询性能最低。
possible_key 、 key、key_len
possible_key 显示可能应用在这张表中的索引,一个或者多个。
查询设计的字段上若存在索引,则该索引将会被列出,但是不一定被使用。
其实这个就是我们写在where 中用到的索引。
key 为实际使用的索引。
有三种情况:
第一种:possible_key 为null ,而key 不为空,一般就是索引扫描,别名覆盖索引。
第二种:possible_key 有一个或者多个,然后key显示一个。
第三个:possible_key 为null,然后key为null。
key_len:表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度。在不损失精确性的情况下,越短越好。
key_len 显示的值为索引字段的最大可能长度,并非实际长度,即:key_len 是根据表定义计算而得,不是通过表内检索出的。
ref
显示索引的那一列被使用了,如果可能的话,是一个常数。那些列或者常量被用于查找索引列上的值。
rows
根据统计信息及索引选用情况,大致估算出找到所需的记录锁需要读取的行数。
每张表有优化器查询的行数,这个比较好理解。
extra
显示是额外的信息。
这一篇比较详细:
https://blog.csdn.net/poxiaonie/article/details/77757471
字段比较多,就不详细介绍了。
mysql 重新整理——索引优化explain字段介绍二 [十]的更多相关文章
- MySQL中的索引优化
MySQL中的SQL的常见优化策略 MySQL中的索引优化 MySQL中的索引简介 过多的使用索引将会造成滥用.因此索引也会有它的缺点.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行 ...
- MySql在建立索引优化时需要注意的问题
MySql在建立索引优化时需要注意的问题 设计好MySql的索引可以让你的数据库飞起来,大大的提高数据库效率.设计MySql索引的时候有一下几点注意: 1,创建索引 对于查询占主要的应用来说,索引显得 ...
- 一本彻底搞懂MySQL索引优化EXPLAIN百科全书
1.MySQL逻辑架构 日常在CURD的过程中,都避免不了跟数据库打交道,大多数业务都离不开数据库表的设计和SQL的编写,那如何让你编写的SQL语句性能更优呢? 先来整体看下MySQL逻辑架构图: M ...
- MySQL系列(六)--索引优化
在进行数据库查询的时候,索引是非常重要的,当然前提是达到一定的数据量.索引就像字典一样,通过偏旁部首来快速定位,而不是一页页 的慢慢找. 索引依赖存储引擎层实现,所以支持的索引类型和存储引擎相关,同一 ...
- mysql 高级和 索引优化,目的:查的好,查的快,性能好
1-事物隔离级别: 更新丢失, 并发情况下,对同一字段进行更新,就会出现更新丢失,采用乐观锁,比较版本号或时间戳可解决 读未提交 解决了更新丢失但是会引起脏读, 二个session.sessionA中 ...
- MySQL优化Explain命令简介(二)
type列 MySQL手册上注明type列用于描述join type,不过我们认为把这一列视为对access type--即MySQL决定如何在表中寻找数据的方式的描述,更加合适一些,以下所示从最坏情 ...
- mysql 单表索引优化
建表语句 CREATE TABLE IF NOT EXISTS `article` ( `id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMEN ...
- 【MySQL 高级】索引优化分析
MySQL高级 索引优化分析 SQL 的效率问题 出现性能下降,SQL 执行慢,执行时间长,等待时间长等情况,可能的原因有: 查询语句写的不好 索引失效 单值索引:在 user 表中给 name 属性 ...
- MySQL如何利用索引优化ORDER BY排序语句
MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度. MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作. 通 ...
- MySQL如何利用索引优化ORDER BY排序语句 【转载】
本文转载自:http://blog.csdn.net/ryb7899/article/details/5580624 .感谢相关作者. MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执 ...
随机推荐
- MongoDB可视化compass 连接数据库失败Invalid UTF-8 string in BSON document
An error occurred while loading navigation: Invalid UTF-8 string in BSON document 出现这个问题建议降低compass版 ...
- electron打包踩过的坑总结 好文
electron打包踩过的坑总结 https://segmentfault.com/a/1190000018533945
- buntu之命令行模式和图形界面切换
1.按ALT+CTRL+F1切换到字符界面(Linux实体机) 如果是VMware虚拟机安装的Linux系统,则切换到字符界面的时候需要以下操作 按下ALT+CTRL+SPACE( ...
- Global AI Bootcamp 成都站 圆满结束!
3月10日星期天下午2点「Global AI Bootcamp 2024 - 成都站」,在成都银泰中心蔚来汽车会议区圆满结束了! 本次活动共计吸引了约50名IT行业从业者线下参与,他们分别来自成都各行 ...
- android使用StringRequest访问网站接收JSON时空指针报错
報錯詳情: 代碼詳情: 报错原因:他丫变量名与JSON格式中的变量名不同
- Csharp学习Linq
Linq的学习 这里继续使用之前文章创建的学生类,首先简单介绍一下linq的使用. Student.cs public class Student { public int Id { get; set ...
- Flutter Utils 全网最齐全的工具类
FlutterUtils 目录介绍 01.事件通知bus工具类 02.颜色Color工具类 03.日期转化工具类 04.File文件工具类 05.Sql数据库工具类 06.Json转化工具类 07.L ...
- Jmeter前言
前言 为什么要撰写这样一个教程呢? 深入学习Jmeter 温故而知新.尽管我已经使用JMeter很长时间,但还有许多元件我并不十分了解,因此,编写教程的过程成为了我的学习过程,通过反复回顾和整理知识, ...
- java 计算两个date日期相差天数或者时间差
相差天数计算: /** * 相差天数计算 */ public int differentDaysByMillisecond(Date date1, Date date2) { return Math. ...
- JWT登录认证-项目BotBattle
目录 session 授权认证原理 密码存储与加密 jwt(JSON Web Token)验证 JWT 的无状态认证机制 实践与调试 实现目标:在没有判断登录认证的情况下,访问任意界面,直接跳转到登录 ...