哪些狀況須要建立索引mysql
哪些狀況不須要建立索引sql
爲何使⽤組合索引
mysql建立組合索引的規則是⾸先會對組合索引的最左邊的,也就是第⼀個name字段的數據進⾏排序,在第⼀個字段的排序基礎上,而後再對後⾯第⼆個的cid字段進⾏排序。其實就至關於實現了相似order by name cid這樣⼀種排序規則。
爲了節省mysql索引存儲空間以及提高搜索性能,可建⽴組合索引(能使⽤組合索引就不使⽤單列索引)
例如:
建立組合索引(至關於建⽴了col1,col1 col2,col1 col2 col3三個索引):
ALTER TABLE 'table_name' ADD INDEX index_name('col1','col2','col3')性能
⼀顆索引樹上建立3個索引 : 省空間
三顆索引樹上分別建立1個索引
更容易實現覆蓋索引
使⽤ 遵循最左前綴原則
一、前綴索引 like a%
二、從左向右匹配直到遇到範圍查詢 > < between like
建⽴組合索引 (a,b,c,d)
where a=1 and b=1 and c>3 and d=1
到c>3停⽌了 因此d ⽤不到索引了
怎麼辦?(a,b,d,c)
案例:
mysql> create table t1 (id int primary key ,a int ,b int,c int,d int);
mysql> alter table t1 add index idx_com(a,b,c,d);
mysql> drop index idx_com on t1;
mysql> create index idx_com on t1(a,b,d,c);mysql索引