1、基本知识:
1)索引的作用是用来加快搜索速度;
2)之所以能加快搜索速度,个人理解是因为其针对索引的字段维护(维护即数据变化之后就要更新)了类似字典中abcd类似的结构,可以大幅缩小搜索范围;
3)由1-2)可见,如果一张表更新频繁、唯一性比较差、数据量比较小,则不适合建索引,并且建索引的个数要尽量少,因为维护索引需要时间。
2、主键索引和唯一索引的区别:
1)主键索引是唯一的,不允许有空值;唯一索引则可以有多个,允许空值;
2)主键列默认创建唯一索引;
3)主键可以被作为外键使用,唯一索引则不能。
3、联合索引:
1)联合索引即多个字段组成的索引,其符合最左原则,即只有包含最左边列的查询,才会使用索引(这可以从1-2)可以看出,最左列是实际字典中的开头的值);
2)比如建立联合索引(area,age,salary),其相当于建立了(area,age,salary)、(area,age)、(area)三个索引,显然只有包含area作为where条件的查询才会走索引;
由3-2)可见,创建联合索引时应将最常作为限制条件的列放在最左边,依次递减。