我正在审查我们的SQL Server数据库上的索引,并注意到一个相对较小(非常旧)的表(3250行),其中包含一个varbinary(max)类型的列用于图像数据。
主键是非聚集索引,并且还有另一个索引(在用户ID上并被删除)。
同样,这是一张非常古老的桌子,在创建这张桌子时,没有人在这里。
那么,有没有理由让它以这种方式设置?我应该改变它吗?如果我应该,有什么我应该注意的吗?
答案 0 :(得分:5)
索引是基于用例的。 PK实际上是PK的索引(您在索引中强制执行唯一性),并在查询中使用PK时使用。您可以轻松地想象查询中使用的列不依赖于PK并使用其他一些列组合的情况。
现在想象一下,这个用例并不是唯一的用例,而是主要用例。在这种情况下,设计人员可以聚集在这个用例上,而不是那些使用频率较低的用例。
我给你的建议是:
相信我,我通过被它咬了一口就学到了这一点。我试着不改变没有测试的东西,这些测试提供了变化的证据,既可以工作也可以不破坏其他东西。在使用遗留系统时,这是至关重要的事情。