一,为什么要冗余数据
互联网数据量很大的业务场景,往往数据库需要进行水平切分来降低单库数据量。
水平切分会有一个patition key,通过patition key的查询能够直接定位到库,但是非patition key上的查询可能就需要扫描多个库了。
此时常见的架构设计方案,是使用数据冗余这种反范式设计来满足分库后不同维度的查询需求。
例如:订单业务,对用户和商家都有订单查询需求:
Order(oid, info_detail);
T(buyer_id, seller_id, oid);
如果用buyer_id来分库,seller_id的查询就需要扫描多库。
如果用seller_id来分库,buyer_id的查询就需要扫描多库。
此时可以使用数据冗余来分别满足buyer_id和seller_id上的查询需求:
T1(buyer_id, seller
继续阅读与本文标签相同的文章
上一篇 :
Unity工程无代码化
下一篇 :
工作线程数究竟要设置为多少 | 架构师之路
-
互联网分层架构的本质
2026-05-20栏目: 教程
-
MySQL的or/in/union与索引优化 | 架构师之路
2026-05-20栏目: 教程
-
多key业务,数据库水平切分架构一次搞定
2026-05-20栏目: 教程
-
一分钟了解索引技巧 | 架构师之路
2026-05-20栏目: 教程
-
了解Kubernetes
2026-05-20栏目: 教程
