当我们搜索/选择具有主键和其他相同大小字段的记录时,性能有什么不同吗?
此外,以 GUID 作为主键和 Int 作为主键的此类查询的性能比较会有所不同吗?
Unique Keys:没有两行相似的列
主键:可以唯一标识表中每一行的最小列数的集合(即在构成主键的所有列中没有两行是相似的)。一个表中可以有多个主键。如果存在唯一键,则它是表中的主键(不是“主键”)。如果不存在唯一键,则需要多个列值来标识行,例如(first_name,last_name,father_name,mother_name)可以在某些表中构成主键。
索引:用于优化查询。如果您要根据某个列多次搜索或排序结果(例如,大多数人会按姓名而不是他们的卷号来搜索学生。)那么如果列值都是“索引”,例如使用二叉树算法。
键是数据库的逻辑特征,而性能完全由物理特征决定:存储格式、索引和内部用于数据访问的方法。因此,原则上答案是否定的。没有根本原因为什么需要通过键或任何其他非键属性访问数据之间存在差异。只有当我们了解有关存储、索引和您使用的 DBMS 的更多信息时,才有可能获得更具体的答案。
不同之处在于主键具有索引,因此按主键搜索通常比其他没有索引的字段更快。无论如何,您可以在不是主键的字段上建立索引,那么搜索就没有区别。
是的。存在性能问题。
使用主键搜索比使用其他字段搜索要快得多。因为主键是唯一的 + notnull 并且它也有索引。