0

假设我们有一个带有名称的Tournament表,该表的列是Id, Name, GameId, TypeId, cityId, Status, Format. 除了IdName列我想用这些列的所有组合搜索这个表,我的意思是我可以用GameId & StatusorTypeId & CityId & Status或搜索Status & Format

如您所见,所有搜索选项计数等于

=C(5,1)+C(5,2)+C(5,3)+C(5,4)+C(5,5). 

所以这是我的问题,最好的索引方案是什么,为什么?我认为选项是,

  1. 每列的索引。
  2. 所有列的复合索引。

我知道复合索引确实比单索引快,但是如果你按照正确的顺序排列,我的意思是如果我在[GameId, TypeId, CityId, Status, Format]列上有一个复合索引并且搜索GameId = 1 & TypeId = 2 & CityId = 3 & Status = 5 & Format = 6它会很好用,但是如果我搜索GameId = 1 & Format = 6我无法意识到这个查询将如何工作足够快,据我所知,SQL Server 复合索引只是一个 b-tree,复合索引的 b-tree 键是从左到右列排序的。

4

0 回答 0