当前位置:   article > 正文

MYSQL 范围查询 执行计划有时为range有时为all问题_sql执行计划type列是all可以怎么修改

sql执行计划type列是all可以怎么修改

d为主键索引,ggg为key索引
ggg仅仅为key索引,d为primary索引;
在这里插入图片描述

EXPLAIN SELECT * FROM ggg WHERE d>1 #range d为primary
  • 1

在这里插入图片描述

​ 实际上,只有当条件列的索引为primary和unique时才是range,key和fulltext依旧是all

EXPLAIN SELECT * FROM ggg WHERE ggg>1 #all ggg为key
  • 1

在这里插入图片描述

​ 其实,是因为primary和unique都是唯一的索引,都有整行的数据,查询*会产生索引覆盖导致的range,而普通的key索引会产生回表,导致的ALL级type。
还有啊,网上那些发文章谈执行计划的,我真的怀疑这些人就是抄过去抄过来的,根本没有自己去试试。呜呜呜呜呜呜,天下无马(悲)。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号