MySql 索引

索引的类型:

  1. 普通索引
  2. UNIQUE索引
  3. Primary索引

索引还分为单个索引和组合索引

创建索引的原则:

  1. 频繁作为查询条件的字段应该创建索引
  2. 唯一性差的字段不适合单独创建索引,如“性别”字段
  3. 更新比较频繁的数据不适合做索引

索引失效的情形:

  1. 查询条件上对索引列进行了计算或者调用了函数
  2. not in 或者 not exist
  3. B-tree索引中 is null索引会失效,is not null则不会失效
  4. != 和 <>
  5. like查询以%开头
  6. 如果字段类型为字符串,查询时一定要将数据用引号包起来
  7. mysql预估用全表扫描比索引快则不会使用索引

最左前缀原理:是对于组合索引的,where条件中字段的顺序很重要,查询条件中所有字段需要从左起按顺序出现在组合索引中,查询条件中字段数不能多于组合索引的字段数。 中间的字段不能存在范围查询(< , like) 创建(A,B,C)的组合索引相当于创建了三个索引:A,(A,B)和(A,B,C)

Written on July 8, 2017