代码之家  ›  专栏  ›  技术社区  ›  luc

关于SQL中的索引和主键?

  •  11
  • luc  · 技术社区  · 15 年前

    这看起来可能是一个幼稚的问题,但我想知道在大多数常见的SQL数据库中,主键和索引之间的关系。

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

    我这么问是因为我正在和Django一起设计一个模型,我想知道设置这两个模型是否都是多余的 primary_key=True db_index=True .

    5 回复  |  直到 15 年前
        1
  •  9
  •   Daniel Vassallo    15 年前

    是的,您可以假定RDBMSE需要主键的索引是一个标准规则。

    主要地,数据库引擎需要索引来强制主键的数据唯一性,要快速实现这一点,需要索引。

        2
  •  5
  •   Adriaan Stander    15 年前

    看看这个

    如果主键约束是 为数据库表创建,不 当前存在的聚集索引 该表,SQL Server自动 在上创建聚集索引 主键

    SQL Server Index Tuning

        3
  •  3
  •   cjk    15 年前

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

        4
  •  2
  •   Anwar Chandra    15 年前

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

        5
  •  2
  •   Oded    15 年前

    在大多数RDBMS中,通常都会将主键实现为索引。

    这本身不是一个需求,而是一个(相当多)明显的优化。