如何判斷使用複合索引還是使用多個單列索引

問:

比如說列A,B,C,D都是查詢條件,且可能以任意組合出現,概率也基本相同。這個時候是應該使用複合索引,還是應該爲每個列單獨建立索引?
希望能夠介紹一下選擇這2種方式的原則,謝謝

答:

看看 ABCD 四個列各自的長度.
如果長度太長, 一般不用考慮將它放在複合索引中, 因爲單獨用它的概率還是比較高, 所以可以考慮單獨爲它建立索引

考慮各列的數據的重複情況
如果數據重複非常嚴重(例如, DISTINCT 後只有原來數據的千分之一(這個比較不是固定的, 一般而言, 數據量越大, 這個比較應該越小一些)), 則不太適合爲它建立索引.

組合索引和單獨索引一齊考慮, 例如, A,B兩個列都是int這種小數據類型, 則A+B, B這樣兩個索引可以覆蓋 A,B 單獨檢索及A+B組合搜索三種情況(單獨搜索A時, 可以利用A+B的複合索引)

原地址:http://community.csdn.net/Expert/topic/5581/5581529.xml?temp=.7767145

(作者:鄒建       BLOG :http://blog.csdn.net/zjcxc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章