mysql索引是什么,如何查看

93 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情

覆盖

覆盖索引(Covering Index):也叫索引覆盖。就是select列表中的字段,只用从索引中就能获取,不必根据索引再次读取数据文件,换句话说查询列要被所建的索引覆盖
注意:
a、如需使用覆盖索引,select列表中的字段只取出需要的列,不要使用select *
b、如果将所有字段都建索引会导致索引文件过大,反而降低crud性能

4、Using where :
使用了where过滤

5、Using join buffer :
使用了链接缓存

6、Impossible WHERE:
where子句的值总是false,不能用来获取任何元祖

执行计划

二、执行计划中的信息

  • id:包含一组数字,表示查询中执行select子句或操作表的顺序。id相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行。
  • const、system、NULL),由左至右,由最差到最好     ALL:Full Table Scan, MySQL将遍历全表以找到匹配的行     index:Full Index Scan,index与ALL区别为index类型只遍历索引树     range:索引范围扫描,对索引的扫描开始于某一点,返回匹配值域的行,常见于between、<、>等的
  • key:显示MySQL在查询中实际使用的索引,若没有使用索引,显示为NULL     查询中若使用了覆盖索引,则该索引仅出现在key列表中
  • rows:表示MySQL根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数\
  • Extra:包含不适合在其他列中显示但十分重要的额外信息\
  • Using index:该值表示相应的select操作中使用了覆盖索引(Covering Index)。 MySQL可以利用索引返回select列表中的字段,而不必根据索引再次读取数据文件     包含所有满足查询需要的数据的索引称为 覆盖索引(Covering Index)     注意:如果要使用覆盖索引,一定要注意select列表中只取出需要的列,不可select *,因为如果将