开发指南079-数据冗余
平台存储数据时,往往为了查询方便、提高性能,允许冗余存储。适合的场景包括:
1、比较稳定的关系、且为了查询方便。
例如存储操作日志,操作人一般存储用户id。但是用户姓名一般不会变,而且查询时会用姓名模糊查询。另外日志的数量一般会很大,用日志表去关联用户表会耗时很长。
基于这种情况,平台允许新增操作人姓名字段,冗余存储下操作人姓名。
2、因为是微服务架构,数据库是分离的,一般有核心库、业务库之分。
一般原则,一个微服务只关联一个数据库,例如只关联业务库。这种情况下,如果需要核心库的内容,就只能通过feign调用了,耗时会比较长。所以可以选择把有些东西存储到业务库一份。
3、为了提高性能,采用一写多读策略。
写操作时只有一个服务,但是会写到多个数据源。
读有多个服务,从多个数据源读取。
4、历史数据再加工存储。
历史数据不会变动了,为了查询方便,会以各种形态存储多份,已备不同的查询要求。
===========持续更新中==============