全表count查询优化
select count(age) from user;
使用索引覆盖优化:创建age字段索引
列查询回表优化
select id,age,name from user where age = 10;
使用索引覆盖:建组合索引idx_age_name(age,name)即可
分页查询
:select id,age,name from user order by age limit
因为name字段不是索引,所以在分页查询需要进行回表查询
使用索引覆盖:建组合索引idx_age_name(age,name)
explain一些说明
Extra:Using index condition 表示使用的索引方式为二级检索,即被用来进行回表查询。
Extra:Using index 表示没有会标查询的过程,实现了索引覆盖
Using filesort 是Mysql里一种速度比较慢的外部排序,如果能避免是最好的了
using where代表发生了过滤,网上有不少文章误把using where和是否读取索引进行关联,是不正确的,
Using temporary(临时表)
Using filesort(文件排序)
order by的 字段要使用索引