首页 > 社交 > 科普中国

面渣逆袭:MySQL六十六问,两万字+五十图详解!有点六

常驻编辑 科普中国 2022-06-22 字段   路由   详解   索引   事务   版本   操作   数据库   引擎   数据   日志
或者 unique key索引, type 就是 eq_ref
  • ref_or_nullref_or_null:这种连接类型类似于 ref,区别在于 MySQL会额外搜索包含NULL值的行。
  • index_mergeindex_merge:使用了索引合并优化方法,查询使用了两个以上的索引。
  • unique_subqueryunique_subquery:替换下面的 IN子查询,子查询返回不重复的集合。
  • index_subqueryindex_subquery:区别于unique_subquery,用于非唯一索引,可以返回重复值。
  • rangerange:使用索引选择行,仅检索给定范围内的行。简单点说就是针对一个有索引的字段,给定范围检索数据。在where语句中使用 bettween...and<><=in 等条件查询 type 都是 range
  • indexindexIndexALL 其实都是读全表,区别在于index是遍历索引树读取,而ALL是从硬盘中读取。
  • ALL就不用多说了,全表扫描。
  • possible_keys 列:显示查询可能使用哪些索引来查找,使用索引优化sql的时候比较重要。
  • key 列:这一列显示 mysql 实际采用哪个索引来优化对该表的访问,判断索引是否失效的时候常用。
  • key_len 列:显示了 MySQL使用
  • ref 列:ref 列展示的就是与索引列作等值匹配的值,常见的有:const(常量),func,NULL,字段名。
  • rows 列:这也是一个重要的字段,MySQL查询优化器根据统计信息,估算SQL要查到结果集需要扫描读取的数据行数,这个值非常直观显示SQL的效率好坏,原则上rows越少越好。
  • Extra 列:显示不适合在其它列的额外信息,虽然叫额外,但是也有一些重要的信息:
    • Using index:表示MySQL将使用覆盖索引,以避免回表
    • Using where:表示会在存储引擎检索之后再进行过滤

    相关阅读:

  • 字段类型有哪些(字段长度怎么设置)
  • 技术人必备的接口测试神器:apifox、apipost、yapi,实用
  • 我做开发测试犯的错
  • 基于SpringBoot微服务开发中的异常处理最佳实践
  • MySQL专题1:
  • 你今天玩游戏了吗?游戏道具了解下
  • 什么是CSRF
  • 最全SQL
  • 云原生(十四)
  • MySQL索引原理篇:深入数据库底层揭开索引机制的神秘面
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。