mysql復合索引 普通索引總結

2021-07-04 11:51:58 字數 1295 閱讀 1879

mysql復合索引、普通索引總結  

對於復合索引:mysql從左到右的使用索引中的字段,乙個查詢可以只使用索引中的一部份,但只能是最左側部分。例如索引是key index (a,b,c). 可以支援a | a,b| a,b,c 3種組合進行查詢,但不支援 b,c進行查詢 .當最左側欄位是常量引用時,索引就十分有效。下面用幾個例子對比查詢條件的不同對效能影響.

create table test(

a int,

b int,

c int,

key a(a,b,c)

);優: select * from test where a=10 and b>50

差: select * from test where a50

優: select * from test where order by a

差: select * from test where order by b

差: select * from test where order by c

優: select * from test where a=10 order by a

優: select * from test where a=10 order by b

差: select * from test where a=10 order by c

優: select * from test where a>10 order by a

差: select * from test where a>10 order by b

差: select * from test where a>10 order by c

優: select * from test where a=10 and b=10 order by a

優: select * from test where a=10 and b=10 order by b

優: select * from test where a=10 and b=10 order by c

優: select * from test where a=10 and b=10 order by a

優: select * from test where a=10 and b>10 order by b

差: select * from test where a=10 and b>10 order by c

索引原則

1.索引越少越好

原因:主要在修改資料時,每個索引都要進行更新,降低寫速度。

2.最窄的字段放在鍵的左邊

3.避免file sort排序,臨時表和表掃瞄.

mysql 復合索引

聯合索引又叫復合索引。對於復合索引 mysql從左到右的使用索引中的字段,乙個查詢可以只使用索引中的一部份,但只能是最左側部分。例如索引是key index a,b,c 可以支援a a,b a,b,c 3種組合進行查詢,但不支援 b,c進行查詢 當最左側欄位是常量引用時,索引就十分有效。兩個或更多個...

索引,復合索引

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

mysql復合索引原理 MySQL 聯合索引詳解

mysql 聯合索引詳解 聯合索引又叫復合索引。對於復合索引 mysql從左到右的使用索引中的字段,乙個查詢可以只使用索引中的一部份,但只能是最左側部分。例如索引是key index a,b,c 可以支援a a,b a,b,c 3種組合進行查詢,但不支援 b,c進行查詢 當最左側欄位是常量引用時,索...