聚集索引 和 主键 的区别
2014-02-13 16:03
691 查看
两者的比较
下面是一个简单的比较表
两者的比较
下面是一个简单的比较表
主键 | 聚集索引 | |
用途 | 强制表的实体完整性 | 对数据行的排序,方便查询用 |
一个表多少个 | 一个表最多一个主键 | 一个表最多一个聚集索引 |
是否允许多个字段来定义 | 一个主键可以多个字段来定义 | 一个索引可以多个字段来定义 |
是否允许 null 数据行出现 | 如果要创建的数据列中数据存在null,无法建立主键。 创建表时指定的 PRIMARY KEY 约束列隐式转换为 NOT NULL。 | 没有限制建立聚集索引的列一定必须 not null . 也就是可以列的数据是 null 参看最后一项比较 |
是否要求数据必须唯一 | 要求数据必须唯一 | 数据即可以唯一,也可以不唯一。看你定义这个索引的 UNIQUE 设置。 (这一点需要看后面的一个比较,虽然你的数据列可能不唯一,但是系统会替你产生一个你看不到的唯一列) |
创建的逻辑 | 数据库在创建主键同时,会自动建立一个唯一索引。 如果这个表之前没有聚集索引,同时建立主键时候没有强制指定使用非聚集索引,则建立主键时候,同时建立一个唯一的聚集索引 | 如果未使用 UNIQUE 属性创建聚集索引,数据库引擎 将向表自动添加一个四字节 uniqueifier 列。 必要时,数据库引擎 将向行自动添加一个 uniqueifier 值,使每个键唯一。此列和列值供内部使用,用户不能查看或访问。 |
相关文章推荐
- 主键与聚集索引的区别
- SQL Server2000主键、唯一索引和聚集索引联系与区别
- 主键与聚集索引的区别
- 聚集索引和主键的区别有哪些
- 主键与聚集索引的区别
- Mysql索引介绍及常见索引(主键索引、唯一索引、普通索引、全文索引、组合索引)的区别
- 主键与索引的区别与联系
- 主键和唯一性索引的区别
- 主键和索引的区别
- 主键、唯一键与唯一索引的区别
- 聚集索引和非聚集索引的区别
- 聚集索引和非聚集索引的区别
- 主键与聚集索引
- 主键索引和唯一索引的区别
- 聚集索引与主键
- innodb表的聚集索引和普通索引的区别(从数据存储角度),组合索引和单列索引的区别.
- SQL Server 聚集索引和非聚集索引的区别总结
- 聚集索引与非聚集索引的区别(未知日期)
- MySQL 主键与索引的联系与区别分析
- 主键索引和唯一索引的区别