【发布时间】:2010-12-25 04:12:48
【问题描述】:
这可能看起来是一个幼稚的问题,但我想知道大多数常见 SQL 数据库中主键和索引之间的关系。
SQL 数据库自动为每个主键创建索引是标准规则吗?
我之所以这么问,是因为我正在使用 Django 设计一个模型,我想知道同时设置 primary_key=True 和 db_index=True 是否是多余的。
【问题讨论】:
标签: sql django primary-key indexing
这可能看起来是一个幼稚的问题,但我想知道大多数常见 SQL 数据库中主键和索引之间的关系。
SQL 数据库自动为每个主键创建索引是标准规则吗?
我之所以这么问,是因为我正在使用 Django 设计一个模型,我想知道同时设置 primary_key=True 和 db_index=True 是否是多余的。
【问题讨论】:
标签: sql django primary-key indexing
在大多数 RDBMS 中,主键通常被实现为索引。
这本身不是要求,而是(几乎)明显的优化。
【讨论】:
在 MySQL 中,主键是一种索引(特定的唯一索引)。
【讨论】:
是的,您可以假设 RDBMS 要求主键索引是标准规则。
主要是,数据库引擎需要索引来强制主键的数据唯一性,而要快速做到这一点需要索引。
【讨论】:
【讨论】:
在MSSQL服务器中,创建主键一般会默认创建聚集索引。
【讨论】: