现在有一个需求,要每天对MySQL里的数据,按需要的条件统计并生成新的数据。
在若干种方法中:
1.通过Mysql事件调度器(Event Scheduler),Mysql定时自己执行
2.通过MySQL Trigger, log数据表每次插入时执行整理操作
3.通过编程语言连接数据库,在编程语言中整理数据并插入数据表,同时用守护进程运行这个程序。
前两种方法可以比较好的保证数据的完整性,但是统计数据量比较大,SQL的编写也比较有难度。
方法3相对灵活,但是需要额外维护,还需要对异常情况做很多额外处理。
哪种方法比较好?
并且最后的数据经过简单处理可以直接把结果存放到redis中供前端通过api调取,
是定时生成新数据存入mysql,然后需要的时候api去调用mysql中的新数据生成结果供前端调用,还是定时生成新数据直接计算结果存入redis,这一点我也比较纠结。
请教一下有类似需求的同学都是如何实现的?
shell+crontab