关于建立索引的那些事情

一如果可以尽量选择全值匹配

create index index_1_2 on tabname(1,2)
select * from tabname where 1=***and 2=*
这个是建立索引的最好的情况

二最佳左前缀法则
这里是指的是在一个复杂的索引在被查询使用的使用的时候(这样说并不准确)先确定索引钱定义的字段

三在索引列上不做任何操作(计数,函数 ,自动/手动转换)会导致索引失效,导致全表扫描。

四 存储引擎不能使用索引中范围条件中范围条件右边的列

五 mysql在使用不等于的时候无法使用索引会导致全表扫描

六 is not null 也无法使用索引,但是is null 可以使用索引。

七 like 以通配符开头的(‘%dfghj%’)mysql索引会失效。

八 字符串不加单引号索引失效

关于子查询的索引优化
1,保证被驱动的表的join字段建立了索引
2,left join 时小表作为驱动表,大表作为驱动表。
3 join 时mysql回见结果集小 的作为驱动表
4子查询尽量不要放在被驱动表,有可能使用不到索引
5尽量不要用 not in 或者not exit

关于order by
1 无过滤不不索引
在查询中没有where条件或者指点显示的字段名会导致索引失效
2排序错,必排序
在排序中要么desc,要么asc
3方向反比排序

关于group by
1基本上和order by一样,唯一的区别是没有用到索引,也可以直接使用索引。

发布了5 篇原创文章 · 获赞 2 · 访问量 711

猜你喜欢

转载自blog.csdn.net/a1240948329/article/details/104689088