sql优化例子
sql慢查询原因
- 索引:当 in 的范围过大,导致名字索引失效,换成join效果也不佳。
- 数据量:源表的数据量(千万级),基础表数据量(数十万)
sql优化分析
策略:空间换时间(结果表),资源换效率(线程池)
优化方案:
源表查询结果先存放在中间结果表。
一、结果表设计:
1. 设置索引,确保可根据索引查询;
2. 写入数据方式:采用有则更新,无则插入的方式。
二、数据更新频率:
根据业务需求更新。
例如非当月的存量数据,一个月更新一次。当月的实时数据,可1-2天更新一次。
三、数据更新方式:
1. 用线程池执行多个sql任务,提高时效;
2. 更新频率,使用scheduler配置定时任务执行。