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進行查詢 當最左側欄位是常量引用時,索...