索引设计原则
1. 代码先行,索引后上
应该根据主体业务的sql语句设计对应的索引。
2. 联合索引尽量覆盖80%的业务条件
比如可以设计一个或者两三个联合索引(尽量减少单值索引),尽量覆盖到where,order by, group by的字段,确保这些联合索引的字段尽量满足sql查询的最左匹配原则。
3.不要在小基数字段上建立索引
比如性别字段。
4.长字符串可以采用前缀索引
varchar(255)的大字段可能会比较占用磁盘空间,可以针对此类字段的前n个字符建立索引。注意此类索引支持等值索引,不支持order by和group by。
5.where与order by冲突时优先选择where
优先基于where条件筛选出一部分结果集,再针对这些结果集进行排序,成本相对较小。
6.基于慢sql查询做优化
可以根据监控后台的一些慢sql,针对这些慢sql查询做特定的索引优化。mysql慢查询参考文章-mysql。