不一定哦,如果是MySql你可以通过 sql前面加上 explain select Column Name1,Column Name2,Column Name3 from table;
排查是否走索引依次从好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL。
1.索引列的数据长度能少则少。
2.索引一定不是越多越好,越全越好,一定是建合适的。
3.匹配列前缀可用到索引 like 9999%,like %9999%、like %9999用不到索引;
4.Where 条件中 not in 和 <>操作无法使用索引;匹配范围值,order by 也可用到索引;
5.多用指定列查询,只返回自己想到的数据列,少用select *;
6.联合索引中如果不是按照索引最左列开始查找,无法使用索引;联合索引中精确匹配最左前列并范围匹配另外一列可以用到索引;
7.联合索引中如果查询中有某个列的范围查询,则其右边的所有列都无法使用索引。
我是阳光随馨馨,如果你看完了,点个赞,加个关注,转发一下哈
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有