【发布时间】:2013-11-19 23:50:54
【问题描述】:
假设我在 col1、col2、col3 上创建了一个复合主键,是否会在每个列上创建索引?
我知道主键约束会为 (col1, col2, col3) 的组合创建索引,这样对这 3 列的搜索会更快。但我不确定数据库是否会在每个列上创建索引,以便对单个列的搜索(如在 column2 上的搜索)加快速度。
谁能告诉我这些列在索引方面发生了什么?
【问题讨论】:
-
我不知道特定列的索引。我认为您需要自己添加
-
高度依赖于您使用的实际数据库(SQL 只是查询语言......不是数据库产品)。但通常,我希望在三列的组合上创建 一个索引 - 但不是每列上的单独索引。因此,这样的复合索引仅对使用索引中最左边的 n 列的查询有用——当然,那些使用所有三个列的查询,那些使用
col1, col2的查询,以及只使用col1的查询——但是这个索引将 不对仅使用col3的查询有用
标签: sql database search indexing