SQL 查询优化经验
后端代码中
并行执行多个 sql 时:
- 几个 sql 不能相互有关联
- 总的执行时间取决与执行时间最长的 sql
用 pandas 进行数据处理时:
- 数据量不能过大(不超过百万级)
SQL 语句优化
- 通过改变关联的关系,inner join、left join 替换
- 用临时表代替一些复杂或有递归,且被多次调用的 sql 代码块
- 将大表变成小表(需要根据实际情况,测试大表查询对总查询时间的贡献)
数据库优化
- 对表建索引,一般维度密度 < 10% 的情况下效果较好。
- 建分区表:筛选条件有按日期或区域或某个维度查询,维度数据量较大,可以将整个表按照日期或区域或其他维度分区
- 开启并行:根据服务器条件配置。一般核数决定并行数。