我们最近又对系统进行了一次大的改版,主要的改动为:
1.原来的sql都是联表查询,把主要的运算交给了数据库,这版改成了全部单表查询,需要应用程序自己组织返回结果,因此在程序中大量定义vo,从数据库vo到参数vo到返回vo,这样为未来的数据任意扩展提供了可能(可以迁移到其他的nosql数据库上)
2.对于redis的运用,原来偏向于把它当成临时缓存,现在偏向于把它当成加速的数据库,用到了redis的各种结构来做加速,只有当数据需要更新的时候才失效。
3.原来的数据库是冷热数据分离的,需要查询的时候,联表查询,但是现在采用分库分表的方式,对于上层应用来说,看到的是一张表,通过中间件来进行sql的最终落地
4.统计相关表比较大,原来是采用在表中添加很多列的方式,一旦需要增加统计项,就要做DDL扩展表结构,现在改为了采用key,value的形式,在一张表中记录用户的所有属性,只是通过key来标识统计项。这样我们统计项再做增加的时候,不需要做DDL了,只是统计表数据量比较大,需要做分表处理