MySQL最佳实践

索引使用策略及优化

创建索引

  • 在经常查询而不经常增删改操作的字段加索引。
  • order bygroup by 后应直接使用字段,而且字段应该是索引字段。
  • 一个表上的索引不应该超过 6 个。
  • 索引字段的长度固定,且长度较短。
  • 索引字段重复不能过多。
  • 在过滤性高的字段上加索引(组合索引的话,过滤性高的放在首位)

使用索引注意事项

  • 使用 like 关键字时,前置%会导致索引失效。
  • 使用 null 值会被自动从索引中排除,索引一般不会建立在有空值的列上。
  • 使用 or 关键字时,or 左右字段如果存在一个没有索引,有索引字段也会失效。
  • 使用 != 操作符时,将放弃使用索引。因为范围不确定,使用索引效率不高,会被引擎自动改为全表扫描。
  • 若有 >,<,not in,between,!=的查询条件的字段加入索引列后,后续加入的索引字段都不能起到过滤作用
  • 不要在索引字段进行运算。
  • 在使用复合索引时,最左前缀原则,查询时必须使用索引的第一个字段,否则索引失效;并且应尽量让字段顺序与索引顺序一致。
  • 避免隐式转换,定义的数据类型与传入的数据类型保持一致。

常见隐式转换:传值与字段类型不一致(数字->字符串);多表关联大小写敏感定义不一致

你可能感兴趣的:(MySQL最佳实践)