1.分析SQL语句执行计划;
2.首先尽量减少SQL扫描的行,通过添加索引、组合索引、强制索引、修改SQL语句(添加条件);
3.遇到慢SQL(DEPENDENT SUBQUERY),则需要拆分SQL、修改SQL连接(STRAIGHT_JOIN)、修改驱动表顺序来提高SQL执行效率;
4.用到索引字段查询出来的数据如果超过总数据的15%,索引基本上失效,需要手动忽略索引,这样的效率更高;
5.通过添加中间表,为中间表添加不同的组合索引,再进行关联查询;
6.对于索引字段为字符串类型(varchar)并且key_len比较长的,为其创建中间表并把字段转化为crc32再进行关联查询;
7.对于在索引字段上使用函数的,对其修改条件,避免在索引上使用函数;
8.对于需要查询每天或者时间段的,原先需要每天或者每个时间段一条SQL的,通过SQL整合(elt、interval)为一条sql一次性查询出所有时间段的数据,减少数据库连接,避免查询重复的数据
9.通过观察数据,有些数据不需要从数据库查询的,只需根据上一次查询做计算的SQL,对其删除,在代码中做计算,减少数据库连接,提高效率;
10.字段长度尽量合适,过长会导致索引变长