哪些状况须要建立索引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索引