我有大約五個可能的索引列,它們都以不同的方式有用的數據庫。我們稱之爲系統,源,熱,時間和行。一起使用系統和行將創建一個唯一的關鍵字,如果按照系統行進行排序,數據庫也將按五個索引變量的任意組合排序(按照我上面列出的順序)。我的問題是,我使用這些列的所有組合:有時我想要加入每個系統行到下一個系統 - (行+ 1),有時我想通過系統源熱量組或地點,有時我想查看系統源的所有條目,其中時間是在特定的窗口等。索引結構,以最大限度地提高索引列的任意組合速度
基本上,我想要一個索引結構,其功能類似於這五個索引的每個可能的排列(按照正確的順序,當然),而沒有實際做出每一個置換(儘管如果需要,我願意這麼做)。我正在做統計/分析,而不是傳統的數據庫工作,所以索引的大小和創建/更新的速度不是問題;我只關心加快即興查詢的速度,因爲我傾向於認爲它們,運行它們,等待5-10分鐘,然後再也不使用它們。因此我主要關心的是將「等待5-10分鐘」縮短爲「等待1-2分鐘」。
我排序的數據會是這個樣子:
Sys So H Ti R
1 1 0 .1 1
1 1 1 .2 2
1 1 1 .3 3
1 1 2 .3 4
1 2 0 .5 5
1 2 0 .6 6
1 2 1 .8 7
1 2 2 .8 8
編輯:這可以簡化事情有點那個系統幾乎總是需要包括作爲第一列作任何其他4列的排序訂購。
並非完全一樣的情況,但類似,請檢查:** [如果我在每列都有索引,我是否會失去索引的好處?](http://dba.stackexchange.com/questions/ 27949/do-i-index-if-i-have-an-index-on-each-column)** –
您需要確定在執行CUD語句時是否可以犧牲性能關於你的查詢執行時間。你有沒有想過創建一個視圖? – Kermit