1不走select *:会增加解析器解析的成本。查询不需要的字段也会造成资源的浪费。不走索引覆盖也会产生回表。
2小表驱动大表:可以更好的使用索引和条件对数据进行筛选
3提升group by的效率:如果使用group by的列没有使用索引,那么查询就会变慢
4批量操作:循环逐条操作需要多次请求数据库。批量操作只需要请求一次数据库。(建议500以内一次批量)
5使用limit:一次查询的数据过多,使用limit进行分页
6join的表不宜过多:维度难度加大(如果需要分库,那到时候sql也需要改)
sql优化的标准:
1减少数据扫描
2返回更少数据
3减少交互次数(批量操作代替循环逐次操作)