索引
1.基本概念
索引是一种排好序的,能够提升查询性能的数据结构。
2.索引的作用
如果没有索引,数据库执行 SELECT 语句时需要遍历整个表(全表扫描),数据量大时查询效率低。
✅好处
- 加速查询:减少数据扫描量,提高查询性能。
- 加速排序:索引列上的 ORDER BY 性能更高。
- 加速分组:索引可提高 GROUP BY 性能。
- 提高表连接效率:索引优化 JOIN 操作。
❌ 坏处
- 降低插入/更新/删除效率:索引需要维护,修改数据时需要额外操作索引。
- 占用磁盘空间:索引会额外占用存储空间。
3.索引的种类
| 索引类型 | 特点 | 适用场景 |
|---|---|---|
| 主键索引(Primary Key) | 唯一标识数据,自动创建唯一索引 | 适用于主键字段(如id) |
| 唯一索引(Unique Index) | 确保字段唯一性,类似主键但允许NULL | 适用于唯一值字段,如邮箱、用户名 |
| 普通索引(Normal Index) | 加速查询,但不保证唯一性 | 用于频繁查询的列 |
| 复合索引(Composite Index) | 多个列组合成一个索引 | 用于多个字段组合查询 |
| 全文索引(Full-Text Index) | 支持全文搜索 | 适用于文本搜索(如文章内容) |
| 哈希索引(Hash Index) | 基于哈希表,等值查询快但范围查询慢 | 适用于=查询,不支持范围查询 |
| 聚索索引(Clustered Index) | 数据按索引排序存储 | 适用于InnoDB,影响数据存储方式 |
| 非聚索引(Non-Clustered Index) | 索引与数据分开存储 | 适用于MyISAM,索引与数据独立 |
浙公网安备 33010602011771号