工作以来很少遇到一个表有千万级的数据,这次让我遇到了。一个项目的首页有十多个统计接口还有几个查询接口,关键是有一个表的数据存在了两个表里面,一个是只存近一周的数据A表,另一个表每天会去同步这个表一次存所有的数据B表。然后说一下优化方案吧。
1.首先是使用索引,解决一些索引失效问题
2.对于统计的,建了一个定时任务判断B端是否有新数据进来,有的话就统计B表的将结果缓冲起来,然后页面在发起统计请求的时候,我们只需要统计还没有统计的那部分数据,然后加上缓存里面的那部分数据,这样统计千万级别的数据就做到了毫秒级
3.对于非常复杂的sql,采取了拆分然后使用多线程执行再合并结果
不知道各位大佬工作中还有哪些优化方案没