索引优化原则

索引优化原则

1	数据类型的选择

数据类型越小越好,越简单越好,避免null值


2	索引的列顺序

索引的列顺序很重要,例如index(a, b),当where中有a或a、b时,索引会被使用,但只有b时则不会被使用。因为a是这个组合索引的引导列,缺少引导列则索引不会被调用(这点不是非常确定,有的是这样有的不是这样,需要根据不同数据库不同版本来看,具体可以通过查询计划查看)。

索引列的顺序应该和其被使用率相关,使用率越高的列,应该越往前面放。


3	聚集索引、B+树、主键

一个表只能有一个聚集索引,聚集索引以B+树形式存储,所以,聚集索引的规则决定了索引存放的物理顺序(聚集索引对需要最快速缩小查询访问及最快速进行字段排序时,非常有用),需要特别注意。

Mysql的聚集索引就是主键,主键与聚集索引不能分离。
Mssql的聚集索引不一定是主键,主键与聚集索引可以不一样,可通过clustered声明。

在可能的情况下,应当分别设计主键和聚集索引,因为聚集索引有非常好的查询性能。


4	聚集与非聚集索引的使用情况概述

动作描述	聚集索引	非聚集索引
列经常被分组、排序	√	√
返回某范围内的数据	√	×
频繁更新的列	×	√
主、外键列	√	√
频繁修改索引列	×	√


5	使用索引需要避免的一些操作
5.1	Or
5.2	否定查询
5.3	模糊查询
5.4	避免null




你可能感兴趣的:(索引优化原则)