索引:大幅度提高查询效率,但会影响增删改的效率
单列索引
基于单个列所建立的索引
单列索引 create index 索引名 on 表名(列名);
复合索引
基于两个列或多个列的索引。在同一张表上可以有多个索引,但是要求列的组合必须不同
复合索引 create index 索引名 on 表名(列名1,列名2);
create index idx_emp on emp(ename, job); 触发索引 select * from emp where ename='WARD' and job='xx'; select * from emp where ename='WARD'; 不触发索引 select * from emp where job='xx'; select * from emp where ename='WARD' or job='xx';
补充
模糊查询不会触发单列索引
复合索引触发必须有优先检索列(第一列)
主键约束和唯一约束会自带同名索引,不能删除。自己创建的可以删除
如果要删除主键约束和唯一约束自带的索引,就必须把对应约束删掉