mysql多库共用数据的同步如何设计

有2个应用系统,1个后台1个前台,后台系统负责生成数据,存到一些表里,过程中各种复杂sql的运算多,io占用也比较大。

前台是给客户使用,但性能要确保,也需要使用这几张表,主要是在线统计分析业务。

现在设想是把后台和前台的库分开,写个传输程序定时传输,这样后台的io就不影响前台。不过这样就要把这几张表的数据同步到前台的库,数据是7*24小时一直在输出,实时性不要求秒级这么高,但起码也要在分钟级的。

现在的问题是,传输程序写好了,但后台业务流程比较多,涉及表的更改比较频繁,每一次更改都要再重新传输,这样传输程序的维护量很大,而且业务还在发展,字段、表结构会一直在变化。

针对上述问题,有什么好的解决办法呢?

mysql主从同步+读写分离

[code="java"]后台系统负责生成数据,存到一些表里[/code]
是用来保存结果的对么?前台不会向这个表里插入数据的吧?

可不可以把这几个表单独抽出来作为一个结果库.?
变成3个库,
后台库,(用来计算)
结果库,(后台程序写结果,前台程序读取)
前台库,(供客户使用)

我不知道你们具体的需求,但是这个问题如果说单单从一张表上统计的话数据量很大,会很慢的。我觉得这个问题可以分成两个功能实现,一个是实时查询,一个是历史查询。那么就有两张表,一个是实时表(在线表或者主表),一个是历史表(从表)。这时还需要借助一张辅助表,称为统计表吧。每天定时把实时表的数据插入到历史表,再从历史表分组统计,将统计的结果插入统计表。

如果查询实时数据,可以从实时表查询,实时表只有一天的数据。
如果查询的历史数据,可以从统计表查询。

如果你们的需求这样不可行,那就考虑一下写存储过程。