[英]High CPU Usage on SQL Server Caused by SqlCacheDependency
[英]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.