我应该何时使用主键或索引?
它们有什么区别,哪一个是最好的?
基本上,主键在实现层面上是一种特殊类型的索引。具体而言:
UNIQUE
属性 - 由于其目的是唯一标识行,不能有多行使用相同的主键。一个表可以拥有多个索引,并且索引不一定是UNIQUE
的。索引存在的两个原因:
表格只能有一个主键,但可以有多个索引。
主键是唯一的,而索引不一定是唯一的。因此,主键值可以用来识别表格中的记录,而索引值则不一定如此。
通常情况下,主键会自动创建索引 - 如果您创建了主键,则无需在相同的列上创建索引。
每个表都应该有一个主键。定义一个主键,可以保证每个记录都具有唯一性。
如果您经常在连接或where语句中使用其他列,索引可以加快查询速度。 然而,创建和删除记录时索引会增加一些负担,如果插入和删除大量记录时需要注意这一点。
其实没有最好的方法-每个方法都有其特定目的。并且您并非真正可以选择使用哪种方法。
我建议您首先问自己表格的主键是什么,然后定义它。
通过个人经验或者如果出现性能问题,添加索引。要衡量差异,如果您使用SQL Server,请学习如何读取执行计划。