Tom*_*lak 11 sql indexing database-design
关系表是表示多对多(m:n)关系的通用解决方案.
在最简单的形式中,它将引用两个相关表的外键组合到一个新的复合主键:
A AtoB B ---- ---- ---- *id *Aid *id data *Bid data
应该如何编制索引以在每个JOIN情况下提供最佳性能?
Aid ASC, Bid ASC)(无论如何,这是强制性的,我猜)Bid ASC, Aid ASC)的附加索引Bid ASC)的附加索引我做了一些测试,这是更新:
要涵盖所有可能的情况,您需要:
CLUSTERED INDEX (a, b)
INDEX (b)
Run Code Online (Sandbox Code Playgroud)
这将涵盖所有的JOINsutiations和ORDER BY
请注意,索引on B实际上是排序的,(B, A)因为它引用了聚簇行.
只要你a和b表上有PRIMARY KEYid,你就不需要创建额外的索引来处理ORDER BY ASC, DESC.
有关详细信息,请参阅我博客中的条目: