关于SQL中的索引和主键?

时间:2009-12-10 08:53:52

标签: sql django primary-key indexing

这可能看起来很天真,但我想知道大多数常见SQL数据库中主键和索引之间的关系。

SQL数据库是否为每个主键自动创建索引是标准规则?

我问的是因为我正在设计一个带Django的模型,我想知道设置primary_key=Truedb_index=True是否有多余。

5 个答案:

答案 0 :(得分:9)

是的,您可以假设它是标准规则,RDBMSes需要主键索引。

主要是,数据库引擎需要索引来强制主键的数据唯一性,并且快速执行此操作需要索引。

答案 1 :(得分:5)

看看这个

  

如果是PRIMARY KEY约束   为数据库表创建,没有   目前存在聚集索引   那个表,SQL Server自动   在。上创建聚簇索引   主键

来自SQL Server Index Tuning

答案 2 :(得分:3)

在MSSQL服务器中,创建主键通常会默认创建聚簇索引。

答案 3 :(得分:2)

在MySQL中,主键是一种索引(特别是唯一索引)。

答案 4 :(得分:2)

大多数RDBMS都倾向于将主键实现为索引。

这不是本身的要求,而是(非常)显而易见的优化。