什么是组合索引?
组合索引,也称为复合索引或多列索引,是由多个数据库字段组成的,是数据库的一种索引类型。
组合索引的优势
- 提高查询性能,由于涉及到多个字段的查询时,组合索引可以减少回表的次数,或者避免回表,提高查询速度;
- 减少io,这里就不得不提到索引下推,减少了io的数据量,如果查询的字段刚好也是索引列,并且其中带有聚集索引,那么覆盖索引也会生效,直接避免了回表;
- 减少磁盘空间,a、b、c三个字段建立索引,相当于a、ab、abc的建立;
最左前缀原理
- 组合索引生效,其中一定要包含索引的第一个列,如a、b、c建立索引,那么索引生效包含(a)、(ab)、(ba)、(abc)、(bac)、(bca)、(cba)、(acb)、(cab)
- 使用部分索引,需要注意除了包含索引的第一个列外,其他索引要包含第二个索引列,否则不会命中索引。
索引的注意事项
- 索引不是越多越好,越多增加了存储空间;
- 索引降低了插入、删除、修改的维护任务速度;
- 唯一索引保证了每一行数据的唯一性;