索引分类
普通索引:只起到加速的作用主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个唯一索引:加速查询 + 列值唯一(不可以有null)组合索引:多列值组成一个索引,注意:最左匹配原则全文索引
-- 创建普通索引
create index 索引名 on 表名
(列名
);
-- 创建唯一索引
create unique index 索引名 on 表名
(列名
);
-- 创建普通组合索引
create index 索引号 on 表名
(列名
1,列名
2);
-- 创建唯一组合索引
create unique index 索引号 on 表名
(列名
1,列名
2);
索引创建原则
字段内数据的辨识度不能低于70%在经常需要 搜索 的列上建索引,这样会大大加快查找速度在经常需要 连接 的列上建索引,可以加快连接的速度。在经常需要 排序 的列上建索引,因为索引已经是排过序的,这样一来可以利用索引的排序,加快排序查询速度。注意:索引库的创建和维护都耗时间,不是越多越好 增删改都会是索引库更新,间接影响数据库效率
索引失效(优化层次)
模糊查询(like)的时候,以‘%’开头则会导致索引失效使用or查询,其中一个条件上没有索引 也会降低查询效率在索引列上进行计算的,索引失效 例如: where id+1=1234;使用 !=、 <> 、is null 、is not null、not 等也会失效组合索引的话,注意最左原则.必须按照组合顺序来写写条件,否则,组合索引就失效了
待补充