MySQL的索引优化小细节
- 当使用索引列进行查询的时候不要使用表达式,把计算放到业务层
- 主键查询会比其它的索引查询快,主键查询不会发生回表
- 当要创建的索引列长度很长时,可以考虑前缀索引,前缀的区分度要足够的高,80%以上
- 排序的时候尽量用索引进行排序
- union all,in,or都能够使用索引,但是推荐in
- 范围列可以使用索引,但是范围列后面的列无法使用索引,索引最多用于一个范围列
- 索引列的强制转换会变为全表扫描
- 更新十分频繁,数据区分度不高的字段上不宜建立索引
- 创建索引的列,不要为null,不然会得到预期之外的结果
- 进行表连接的查询时,最好不要超过三张表,join的字段的类型也最好一致
- 能使用limt的时候尽量使用limit确定取结果的数量
- 单表索引建议控制在5个内
- 单索引字段数不要超过5个(组合索引)
- 不要过早和不了解系统的情况下创建索引,索引不是越多越好