首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    百亿关系链,架构如何设计?

    通过强好友关系业务分析,很容易了解到,其核心元数据为: (1)friend(uid1, uid2); 其中: (1)uid1,强好友关系中一方的uid; (2)uid2,强好友关系中另一方的uid; uid...都可以,为了避免歧义,可以人为约定,插入记录时uid1的值必须小于uid2。...假设要查询uid=2的所有好友,只需在uid1和uid2上建立索引,然后: select * from friend where uid1=2 union select * from friend where...画外音,可不可以使用: select * from friend uid1=2 or uid2=2 使用一个表记录所有关系链,如果数据量大了,数据库进行分库以后,不久无法同时满足uid1和uid2上的查询了么...对于强好友关系的两类实现: 第一类:friend(uid1, uid2)表; 第二类:数据冗余guanzhu表与fensi表(后文称正表T1与反表T2); 在数据量小时,看似无差异,但数据量大时,只有后者

    2.4K30

    多对多业务,数据库水平切分架构一次搞定

    四、强好友关系-元数据实现一 通过强好友关系业务分析,很容易了解到,其核心元数据为: friend(uid1, uid2); 其中: uid1,强好友关系中一方的uid uid2,强好友关系中另一方的uid...回答:都可以 为了避免歧义,可以人为约定,插入记录时uid1的值必须小于uid2。...回答:假设要查询uid=2的所有好友,只需在uid1和uid2上建立索引,然后: select * from friend where uid1=2 union select * from friend...多了一个粉丝,于是: guanzhu表要插入{2, 1}这一条记录 fensi表要插入{1, 2}这一条记录 六、数据冗余是实现多对多关系水平切分的常用实践 对于强好友关系的两类实现: friend(uid1..., uid2)表 数据冗余guanzhu表与fensi表(后文称正表T1与反表T2) 在数据量小时,看似无差异,但数据量大时,数据冗余的优势就体现出来了: friend表,数据量大时,如果使用uid1来分库

    78560
    领券