MySql 索引
索引的类型:
- 普通索引
- UNIQUE索引
- Primary索引
索引还分为单个索引和组合索引
创建索引的原则:
- 频繁作为查询条件的字段应该创建索引
- 唯一性差的字段不适合单独创建索引,如“性别”字段
- 更新比较频繁的数据不适合做索引
索引失效的情形:
- 查询条件上对索引列进行了计算或者调用了函数
- not in 或者 not exist
- B-tree索引中 is null索引会失效,is not null则不会失效
- != 和 <>
- like查询以%开头
- 如果字段类型为字符串,查询时一定要将数据用引号包起来
- mysql预估用全表扫描比索引快则不会使用索引
最左前缀原理:是对于组合索引的,where条件中字段的顺序很重要,查询条件中所有字段需要从左起按顺序出现在组合索引中,查询条件中字段数不能多于组合索引的字段数。 中间的字段不能存在范围查询(< , like) 创建(A,B,C)的组合索引相当于创建了三个索引:A,(A,B)和(A,B,C)
Written on July 8, 2017