概述:

  • 数据库提高查询效率的最基本能力。
  • 每次增删改都会调整索引,所以索引不能太多,否则应该增删改效率。
  • 默认说的都是InnoDB
    • 索引结构都是B+树
    • 每次查询基本都只会走一个索引,

设计上的小技巧

  • 如果联合索引中间有某个值可能会断掉,如果是枚举类型,有限的字段值(比如性别),可以考虑枚举全量利用到联合索引
    • 比如 联合索引(姓名 性别 年龄),过滤时只包含了姓名和年龄的过滤条件,此时可以 加上 in(‘男’,’女’) 即可覆盖全部索引
  • 长字符串可以考虑前缀索引
    • 比如 varchar(255) 这种大字段会占据很大的索引空间,可以只取前20个字段生成索引

KEY index(name(20),age,position)。