首页 > 数据库 >MySQL——01

MySQL——01

时间:2022-10-30 16:00:28浏览次数:33  
标签:index 01 字节 查询 索引 MySQL Using 排序

sql优化


explain


id

执行顺序,值越大执行优先级越高,相同则从上往下执行

select_type

简单/复杂查询

  • simple 简单查询
  • primary 复杂查询中最外层的 select
  • subquery select 中的子查询(不在 from 子句中)
  • derived from 中的子查询,结果放在临时表(派生表)中


table

被操作表

type

访问类型,system > const > eq_ref > ref > range > index > ALL

sql语句的优化主要看这里能到哪个级别,越高越好,index是最低最低最低要求了(当然如果是单张小表可能是All,可能走了索引还不如全表扫,如涉及到回表),如果能到前两个最好了

possible_keys

可能使用的索引

key

实际使用的索引

key_len

索引里使用的字节数,可以验证具体使用了索引中哪些列

比如8字节的有datetime/bigint,4字节的timestamp/int,3字节的date,1字节的tinyint,还有字符串varchar(n),以utf-8字符集为例,汉字类的为3n+2,英文数字类的n+2

ref

在key列记录的索引中

rows

MySQL预计要读取的行数,不一定是结果集里的真实行数

Extra

额外信息

  • Using index 使用覆盖索引,不需回表即索引中包含了所有查询字段,这是最优结果
  • Using where 使用 where 语句来处理结果,索引中不包含所有查询列需回表
  • Using index condition 索引不能包含全部查询字段,回表之前会根据where条件在索引中进行过滤
  • Using temporary 通过临时表来处理查询
  • Using filesort 通过外部排序而不是索引排序,小数据量在内存排序,数据量较大时则要在磁盘中排序
  • Select tables optimized away 使用聚合函数( max/min)来访问存在索引的某个字段

标签:index,01,字节,查询,索引,MySQL,Using,排序
From: https://blog.51cto.com/u_15847681/5807525

相关文章