关于sql server:为什么主键顺序很重要?

Why does primary key order matter?

我最近在EntityFramework项目中建立了一个类,该类将其几个成员指定为组合键。

但是,当需要从中创建数据库时,出现了错误

Unable to determine composite primary key ordering for type 'NNNNN'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys.

我知道如何解决问题,但是我只是想知道为什么它关心订单。 组合主键不是只需要一组键即可对记录进行键化而无需任何特定顺序的组合吗?


这很重要,因为主键的顺序在数据库中很重要。 由于主键(通常)是群集的,并且始终是索引,因此,无论键是按名字,姓氏,SSN还是SSN顺序排列,姓氏,名字都会有很大的不同。 如果在查询表时只有SSN,而PK是唯一的索引,则我将看到后者具有出色的性能,而前者则具有全表扫描功能。