有个mysql数据库 里面有2个表,一个表叫orders ,另外一个表叫newOrders
orders存的是订单数据,并且 时时刻刻都会有新数据进入 或者 有某个数据的状态发生变化,这个表里有2个字段 分别叫lastchange,jsonText,jsonText 存的是json格式的字符串,也就是把一段json,存到这里的; lastchange 意思是 这条记录最后更新的时候
newOrders 有很多字段,存在的目的是 为了 把 orders表里的 jsonText 进行序列化为json,然后把json里面的所有信息提取出来,存入newOrders里面的每个对应字段里
这样做的目的是, 如果用orders表 那么 就无法对订单进行统计分析,因为所有的信息都存在jsonText这个字段里, 而我们的数据库是mysql,不是mongodb 也不是postgresql,所以不支持json查询,
所以如果我们把数据解析分离出来,到一个新的表newOrders里面,就可以直接查询了
现在遇到的问题是,写一个脚本,来完成 把 orders里面的数据 实时增量更新到newOrders里面,
因为orders里面会永久保存所有数据库,所以数据量很大, 所以不能每次都全部把数据库插入到newOrders里面
但orders里面有个lastchange字段,我们可以通过这个字段来进行增量操作
因为内容包含图表,v2编辑器无法贴图和表格,所以我放到笔记里的,请点击下面的链接查看
http://note.youdao.com/share/?id=8f27b9d6f36c8cfbf69cdefb38ce9db7&type=note
1
jianghu52 2015-03-05 09:06:06 +08:00 1
看了你之前的帖子,那个python脚本自动更新。
要我来设计的话,可能也会设计成同你一样。但是有一点可能不太相同,就是关于增量更新的频率问题。 如果你的查询也非常频繁,而且要求实时,准确的话,那么不管你的脚本频率多低,总是会有一个延迟。 所以如果在要求高速,准确的情况下。我倾向于老数据+内存 来显示更新内容。 具体来说,就是我先将一个小时内的orders 的内容保存到内存中,这个时候如果客户需要查询的话,那么我就把neworder数据抽出来再加上内存上的数据,显示给客户。然后一个小时后我再将内存的数据插入neworder。 这样做的好处一方面是降低了数据库的读写压力,另外一方面在时效性上也能得到保证。 但是缺点是对于机器要求高,(很吃内存),另外一方面对于服务器的稳定性也有要求,(一旦down的话,1个小时内的数据都消失了。所以整合数据的工作要做好) |