假设我在数据库中设置了一个ID行(int)作为主键.如果我经常查询ID,我还需要索引它吗?或者它是主键意味着它已经被索引了?

我问这个问题的原因是,在MS SQL Server中,我可以在此ID上创建一个索引,正如我所说的,它是我的主键.

编辑:另外一个问题——对主键进行额外索引会有什么害处吗?

推荐答案

没错,SQL Server允许您在同一个字段上创建重复的索引,这令人困惑.但是,您可以创建另一个PK索引,这并不意味着PK索引也不存在.

额外的索引没有好处,但唯一的危害(非常小)是额外的文件大小和行创建开销.

Sql相关问答推荐

Postgres trunc_date删除一个月

在甲骨文中查找前一个星期一的S日期

提高写密集型表的查询性能

我希望以正确的升序获取SQL结果.怎样才能得到它们?

当一个视图在Postgres中失效时?

如果元素包含通过SQL指定的字符串,则过滤掉数组元素

Access中执行INSERT INTO查询时出现错误消息

雅典娜嵌套Json提取液

从结果SQL查询中排除空值

按两列分组,并根据SQL中的条件返回第三个列值

当active=1时,是否可以创建id为的唯一索引?

将二维数组的第一个和第二个元素取消嵌套到两个一维数组中

如何根据 SQL 中的阈值标记一个集群中的所有值?

使用 SQL 计算一年中任意 3 个月期间的总成本

当该日期的至少两条记录具有相同的持续时间或至少一条记录的持续时间为 0 时,如何标记该日期的所有记录

如何显示最常引用条目的详细信息

为什么 get_json_object() 无法从存储在 Hive SQL 表中的 JSON 中提取值?

如何按日期和位置对最近 3 个报告日期的 SQL 查询结果进行透视?

使用 JSON_BUILD_OBJ 从 Postgres 返回 JSON

如何根据时间在 MongoDB Compass 中分组?