索引的建立原则, 如何避免索引失效

源自面试鸭

建立索引

1.经常使用的字段

2.字段最好唯一

3.字段类型尽量用数值型,减少字符类型

4.对于带条件和排序字段的字段建立索引

5.频繁出现在where条件后面的字段

6.字段应选差异性较大的字段,否则失去了索引的意义。

如何避免索引失效

1.最佳左前缀法则 - 如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且不跳过复合索引中间列。

2.不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描。

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

4.尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select *。

5.mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描。

6. is null, is not null 也无法使用索引。

7.like以通配符开头(’%abc…’),mysql索引失效会变成全表扫描的操作。

8.字符串不加单引号索引失效。

9.少用or,用它来连接时会索引失效。

使用索引的缺点

1 、会使得写操作的性能下降,因为底层使用的是B+树,增删元素为了保持索引的查询效率,需要对树的结构重新排列,从而使得写操作的效率下降。
2、 索引其实是很庞大的,需要占用额外的磁盘空间。当然如今磁盘很便宜,可能不太在乎!
posted @ 2022-10-08 09:52  leepandar  阅读(97)  评论(0编辑  收藏  举报