SQL索引根据存储关系,分为两类:聚集索引和非聚集索引
聚集索引和非聚集索引的区别:聚集索引数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表只有一个聚集索引;非聚集索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引
在一个表中,只会存在一个聚合索引,主键默认就是聚合索引
SQL索引根据使用关系,分为四类:主键索引、唯一索引、普通索引(组合索引)、全文索引
主键索引:
表的主键自动为主键索引,每条数据的唯一标识,一个表只有一个主键索引
唯一索引:
唯一索引也是确保数据的唯一性,一个表可以多有多个唯一索引,这也是和主键索引的区别所在
普通索引可以对任意字段或者多个字段添加索引
动作描述 |
使用聚集索引 |
使用非聚集索引 |
外键列 |
应 |
应 |
主键列 |
应 |
应 |
列经常被分组排序(order by) |
应 |
应 |
返回某范围内的数据 |
应 |
不应 |
小数目的不同值 |
应 |
不应 |
大数目的不同值 |
不应 |
应 |
频繁更新的列 |
不应 |
应 |
频繁修改索引列 |
不应 |
应 |
一个或极少不同值 |
不应 |
不应 |