索引是排好序的快速查找的数据结构,能够有效提高查找效率。
使用索引的规则
使用索引的优缺点
使用索引的优点:
- 提高检索效率,降低数据库对磁盘 I/O 成本。
- 对数据排序,降低数据排序成本,降低 CPU 消耗。
使用索引的缺点:
- 索引也会占用空间(内存和磁盘)。所以每个表的索引最好不超过5个。
- 提高查询速度,同时降低更新表的速度。
索引的分类
索引从字段上可以分为三大类:
- 单值索引。即一个索引只包含一个字段。
- 唯一索引。即索引列值必须唯一,但允许有空值。
- 复合索引。也称为联合索引,即一个索引包含多个字段。
索引从存储结构上可以分为聚集索引和非聚集索引。
聚集索引:索引与数据聚合。
非聚集索引:索引与数据分离。
创建索引的场景
适合创建索引的场景:
- 主键自动会创建唯一索引。
- 频繁作为查询条件的字段。
- 查询中与其他表相关联的字段,外键关系建立索引。
- 查询中排序的字段,排序字段若建立索引,大大提高排序效率。
- 查询中统计或分组字段。
不适合创建索引的场景:
- where 条件中用不到的字段不创建索引。
- 频繁更新的字段不适合创建索引。
- 表记录太少。
- 数据重复且分布平均的字段。