|
1
|
| Enrique Benito Casado · 技术社区 · 7 年前 |
|
|
1
1
一个 primary key 是一种数据建模概念,使您能够唯一地标识表中的特定行,例如,将“userId”列设置为“users”表的主键可以保证只有一行/用户的userId=X。 实际上,在大多数数据库系统中,主键是 referential integrity 为设置为键的列强制使用唯一值的约束,从而确保键列的每个值唯一标识该表的一个特定行。 因此,在这种情况下,主键似乎完全用于其目的:保证每个用户都有一个唯一的id,从而可以被它识别。 此外,主键仅“对搜索有用”,因为在大多数数据库系统中,它是通过使用(唯一的)来实现的 index 在设置为主键的列上。无论何时在where子句中使用该列或在联接中使用该列,索引都用于定位与查询匹配的特定行,而不是读取整个表。这使得搜索/联接比使用未编制索引的列更快。 编辑 :如果您只考虑“有用的搜索”场景,那么定义主键(例如在维度上)的好处是,它的索引(在大多数RDBMS中自动创建)将用于优化和加速事实表和维度表之间的连接(就像在关系模型中一样)。即使在查询中没有显式地使用它,主键的索引在与其他表联接时仍然可以提高搜索/查询的速度。 |