1

我有一个非常大的表,上面有两个索引,但没有 PK(聚集)索引。

如果表上还有一个聚集索引,这两个索引的性能是否会提高,即使我必须从标识列“设计”一个?

4

2 回答 2

1

一个精心挑选的聚集索引可以为你的表现创造奇迹。为什么?聚集索引定义了数据在硬盘上的物理存储方式。选择一个好的聚集索引将确保您获得顺序 IO 而不是随机 IO。因此,这是一个很大的性能提升,因为大多数数据库设置的瓶颈是硬盘驱动器和 IO 操作。

尝试在连接经常使用的值上创建聚集索引。

如果你只是把它放在你的主键上,你的性能仍然会提高,因为 NON_Clustered 将使用 Clustered 进行查找操作,这将避免表扫描。

希望这能回答你的问题

于 2014-07-02T12:10:46.637 回答
0

它更像是相反的,非聚集索引受到聚集索引的影响:

http://use-the-index-luke.com/blog/2014-01/unreasonable-defaults-primary-key-clustering-key

但是,如果您设法将其中一个非聚集索引替换为聚集索引,则整体性能可能会提高……或降低。真的取决于你的工作量。

于 2014-07-03T08:16:29.853 回答