1.1 什么是索引
索引是数据库中用于提高检索性能的排好序的数据结构。它类似于书籍的目录,通过建立特定的数据结构将某个列或多个列的值与它们在数据库中的行关联起来,以加快查询速度。
1.2 索引的分类
MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。
- 从功能逻辑上说,索引主要有4种,分别是普通索引、唯一索引、主键索引、全文索
引
主键索引:用于标识每一条记录,主键索引的值不允许重复且不能为空,并且一个表只能有一个主键索引
唯一索引:用于保证索引列的值唯一,可以为空值,但一张表中可以有多个唯一索引
普通索引:没有唯一性限制,可以有重复值和空值,是最基本的索引类型 - 按照物理实现上来说,索引可分为2种,聚簇索引和非聚簇索引。
- 按照作用字段个数进行划分,分成单列索引和联合索引
联合索引:在多个字段上创建的索引,可以包含多个列。组合索引可以提高多列查询的性能,但查询条件必须符合最左前缀原则,即查询从左到右使用组合索引中的列。
2.索引的优点
(1)提高查询性能
(2)唯一性索引:通过在索引上设置唯一性约束,可以确保数据的唯一性,防止重复数据的插入
3.索引的缺点
(1)占用存储空间:
(2)索引的维护的开销: