课程名称:Java架构师-十项全能
课程章节:
数据冗余-和范式说再见
主讲老师:
姚半仙
课程内容:
尽信书不如无书
在互联网场景下往往用大宽表做冗余,不建议使用关联表,最多只允许做一次Join。
对于有复杂关联关系的数据:
用图形数据库存储,解决join关联查询性能问题
数据异构
快照、冗余
数据异构冗余举例:
一条订单记录,会被异构到一个以订单ID维度做分库分表的查询库、以用户ID维度做分库分表的查询库、以订单时间维度做分库分表的查询库,为了满足前端复杂的查询,还需要把订单数据同步到搜索引擎中, 如Solr、opensearch、ES等。数据异构的其实已经有很成熟的结局方案了, 比如Canal,它可以从订单库中将数据同步给不同的存储介质。
传统场景方案:订单快照通常是订单的历史版本,中间再做一个关联表,关联到商品的历史版本记录中。
互联网场景方案:订单的快照信息,会做一个聚合,冗余大量数据,如营销计算、商品信息、用户信息,冗余到订单库里。业务第一,怎么快怎么来。