这可能看起来很天真,但我想知道大多数常见SQL数据库中主键和索引之间的关系。
SQL数据库是否为每个主键自动创建索引是标准规则?
我问的是因为我正在设计一个带Django的模型,我想知道设置primary_key=True
和db_index=True
是否有多余。
答案 0 :(得分:9)
是的,您可以假设它是标准规则,RDBMSes需要主键索引。
主要是,数据库引擎需要索引来强制主键的数据唯一性,并且快速执行此操作需要索引。
答案 1 :(得分:5)
答案 2 :(得分:3)
在MSSQL服务器中,创建主键通常会默认创建聚簇索引。
答案 3 :(得分:2)
在MySQL中,主键是一种索引(特别是唯一索引)。
答案 4 :(得分:2)
大多数RDBMS都倾向于将主键实现为索引。
这不是本身的要求,而是(非常)显而易见的优化。