復合索引(組合索引)

2021-09-09 01:28:57 字數 815 閱讀 4228

使用者可以在多個列上建立索引,這種索引叫做復合索引(組合索引)。

1.何時是用復合索引

在where條件中字段用索引,如果用多字段就用復合索引。比如在查詢位址的時候,經常要求輸入省,市資訊,如果同時在省,市上建立索引,將會提高查詢速度。

2.對於復合索引,在查詢使用時,最好將條件順序按找索引的順序,這樣效率最高。如:

idx1:create index idx1 on table1(col2,col3,col5)

"select * from table1 where col2=a and col3=b and col5=d" 索引效果明顯

如果是"select * from table1 where col3=b and col2=a and col5=d"

或者是"select * from table1 where col3=b"將不會使用索引,或者效果不明顯

3.復合索引會替代單一索引麼?

復合索引idx1:create index idx1 on table1(col1,col2) 單一索引idx2:create index idx2 on table1(col1)

單一索引idx2作為查詢條件和復合索引idx1作為查詢條件的查詢速度是幾乎一樣的,甚至比用復合索引idx1還要略快(在查詢結果集數目一樣的情況下);而如果僅用復合聚集索引的非起始列(col2)作為查詢條件的話,復合索引idx1是不起任何作用的。對一張表來說,如果有乙個復合索引 on (col1,col2),就沒有必要同時建立乙個單索引 on col1。如果查詢條件需要,可以在已有單索引 on col1的情況下,新增復合索引on (col1,col2),對於效率有一定的提高。

復合索引(組合索引)

使用者可以在多個列上建立索引,這種索引叫做復合索引 組合索引 1.何時是用復合索引 在where條件中字段用索引,如果用多字段就用復合索引。比如在查詢位址的時候,經常要求輸入省,市資訊,如果同時在省,市上建立索引,將會提高查詢速度。2.對於復合索引,在查詢使用時,最好將條件順序按找索引的順序,這樣效...

索引,復合索引

這裡只看btree索引,至於雜湊索引和全文索引本文暫不討論。前言 索引是有效使用資料庫的基礎,但你的資料量很小的時候,或許通過掃瞄整表來訪問資料的效能還能接受,但當資料量極大時,當訪問量極大時,就一定需要通過索引的輔助才能有效地訪問資料。一般索引建立的好壞是效能好壞的成功關鍵。使用innodb作為資...

復合索引 復合索引順序選擇問題

color red b 注意!在較高版本的oracle中不存在下述的問題!b color 復合索引第乙個原則 字首性 prefixing color red 復合索引的字首性是指只有當復合索引的第乙個字段出現在sql語句的謂詞條件中時,該索引才會被用到。如復合索引為 ename,job,mgr 只要...