2011-03-09 51 views
1

如果一個表有索引(A,B, C,D)是否還有理由也有索引(A,B, Y,Z)(B,A, C,D)有沒有使用像這樣的數據庫索引?

我問的原因是這兩個都提供了一個機會來混合部分索引,在第一種情況下前綴A,B和在第二種情況下後綴C,D,允許複雜索引添加在較低成本。也就是說,我從來沒有做過這件事的頭,我想知道是否有這兩個索引,或者如果我只是錯過了一些東西,沒有什麼優勢。

回答

1

肯定有一些情況下,有兩個索引(A,B,C,D)(A,B,Y,Z)。如果您認爲A & B是經常使用的色譜柱,但這些色譜柱並不是非常有選擇性的,而C & D或Y & Z的組合更具選擇性,但使用較少。或者在其中A & B是自己選擇性的情況下,但是對於也選擇C & D或Y & Z的某些查詢具有覆蓋索引是有用的。或者甚至情況下,(A,B,C,D)(A,B,Y,Z)必須是唯一的。你甚至可以想出在(A,B)上有第三個索引是值得的,因爲你想對索引範圍進行掃描,只是指定A & B儘可能高效。但這些往往是不尋常的情況。

我不確定我是否有機會合並索引。我不熟悉任何允許多個索引使用相同索引結構的數據庫引擎,如果這就是您的建議。

+0

重新合作:這就是我所想的。如果兩個索引具有相同的前綴,那麼索引樹的前N個級別將(或可以)相同(假設b樹),理論上可以由兩者共享。 – BCS 2011-03-09 19:09:30

相關問題