如果我们管理唯一性,我们为什么要使用主键?从代码自动增加?

时间:2017-06-14 07:21:08

标签: mysql sql sql-server database rdbms

我知道我们使用主键来唯一地标识每一行,但是如果我们从代码管理所有代码呢?究竟使用什么主键?

3 个答案:

答案 0 :(得分:0)

通过定义主键,您可以更快地检索数据。

答案 1 :(得分:0)

如果您在id列上使用标识,则不需要在同一列使用主键

答案 2 :(得分:0)

  • 没有索引,用户从数据库中删除父行 将强制SQL Server查询引擎扫描子表 在外键中引用以确保数据完整性不是 损害。考虑一个包含数十万个子表的子表 行;索引可以大大加快查找速度。
  • 外键CASCADE选项的性能(ON DELETE CASCADE,ON UPDATE CASCADE)可以通过使用得到显着改善 引擎执行查询以搜索行的索引 这应该被自动删除或更新。
  • 在父表和子表之间的JOIN表现 外键列大大改进。这是一个自然的假设 可以一起查询相关的表以生成 结果集。考虑早期的ORDERHEADER / LINEITEM示例。它 对于不需要执行的查询来说,这是很自然的 只有LINE ITEM的元素,但也包括ORDERHEADER的元素(例如 订单日期,输入订单的CSR)
  • 在开发和维护数据模型时,请检查模型的位置 可以从外键关系中受益
  • 确保索引外键列以防止表扫描 在数据删除,级联操作和查询JOIN期间。