繁体   English   中英

SQL Server,这是正确的索引用法吗?

[英]SQL Server, is this correct index usage?

我正在尝试掌握索引。 给定表:

Books
------
ID (PK)
Title
CategoryID (FK)
AuthorID (FK)

在ASP.net页面的哪个位置,有一些网页可以按作者或按类别提取书籍,如果我想缩短检索时间,可以在CategoryID Asc, AuthorID asc上创建索引吗?

我正确理解了吗? 如果我如上所述使用多个列,那是所谓的clustered index还是其他?

您应该创建两个索引,一个用于CategoryID ,一个用于AuthorID 如果要寻找一个另一个,则不需要两者都在同一索引中。 如果您总是要同时查询两者(例如,类别和作者),则需要使用。

聚集索引控制数据的物理顺序。 通常,如果您有一个身份列,则将其用作聚簇索引(默认情况下,主键为聚簇索引)就可以了。

聚集索引意味着数据按照索引指定的顺序存储在表和磁盘(等)中。 其结果是,只能存在一个聚集索引。

索引CategoryID Asc, AuthorID asc将使对特定类别的查找更快,并且对具有特定作者的特定类别的查找将是理想的。 但是,仅对作者查找并不理想,因为您必须为每个类别查找作者。 在这种情况下,两个单独的索引会更好。

适当的索引将取决于查询的作用。 如果您有一个同时针对类别和作者的查询,那么您可能会同时使用两个字段的索引,否则可能会更多地使用两个单独的索引。

聚集索引是决定表中记录存储顺序的索引,与它包含的字段数无关。 您应该已经在主键上具有聚簇索引,因此您不能为该表创建另一个聚簇索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM