MySQL中的组合索引(复合索引)
使用多个字段创建索引,只用在查询条件中使用了创建索引时的第一个字段,索引才会被使用(最左前缀原则);
一、最左前缀原则
最左优先;
例
使用表中的name,address,salary创建组合索引,那么想要组合索引生效, 我们只能使用如下组合;
Name/address/salary
Name/address
Name
如果使用address/salary或者是salary则索引不会生效;
二、如果添加组合索引
修改表添加最后索引
Alter table 表名 add index 索引名(列名(长度/length),列名(长度/length))
例
修改 emp6 表,为 name,address 列创建组合索引
Alter table emp6 add index emp6_index_n_a(name,address)
创建表时创建组合索引
Create table 表名(列名 列类型 , index 索引名(列名(长度/length),列名(长度 /length)))
例
创建 emp7 表,包含 emp_id,name,address 列,同时为 name,address 列 创建组合索引。
Create table emp7(emp_id int primary key auto_increment , name varchar(30) , address varchar(50) , index emp7_index_n_a(name,address))