【问题标题】:why we need primary key and how does it related with index为什么我们需要主键以及它与索引有何关系
【发布时间】:2017-09-08 11:48:20
【问题描述】:

我有一个场景,其中有两个具有唯一元素的表,并且两个表都包含相同类型的记录。现在一个表有主键,另一个没有。那么如果我在两个表中都有唯一元素,那么拥有主键有什么好处。以及主键与索引的关系。? 我在诺基亚面试中被问到这个问题。非常令人困惑,请用某种例子回答。

【问题讨论】:

标签: mysql sql


【解决方案1】:

拥有主键有什么好处?

主键诱导或强制列具有两个条件-

  1. 唯一值
  2. 非空

因此,当插入表格行时,它必须满足这两个条件。如果表已经有一些记录,它将在添加约束时检查唯一性。如果该属性有重复条目,则不能添加主键约束。

主键和索引有什么关系?

当您将属性声明为PRIMARY KEY 时,默认情况下会在该属性上创建索引。 当记录数过多时,这有助于更快地访问记录。 (=> 更快的获取)。

但是对于小表,索引会减慢速度,因为每次插入/更新一行时它都需要更新索引。

【讨论】:

  • 如果我的所有记录都是唯一的。正如我提到的一个例子,primary 将如何增加优势。你能按照那个描述一下吗
  • 在属性上添加主键会在记录上创建索引。所以性能会更好,这不是只有唯一记录(没有索引)的情况。唯一列也可以为空,主列不能为空。我没有看到除此之外的任何其他原因。希望这会有所帮助
猜你喜欢
  • 2014-06-01
  • 2018-01-07
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
相关资源
最近更新 更多