Appearance
什么是 ShardingSphere 的关联表?
ShardingSphere提供了关联表的功能,主要解决在进行多表关联查询时,容易出现的查询效率太低的问题。
具体来说,关联表定义了一种映射关系,将不同分片表的某些字段对应起来。这样,在进行多表关联查询时,ShardingSphere就可以通过这个映射关系,将查询操作转换成分片表的本地查询操作。这样就可以避免跨节点、跨数据库的查询,提高了查询效率。
例如,如果有两个表:订单表(t_order)和订单情表表(t_order_item),它们之间存在一个外键关联关系。我们可以定义一个关联规则,将这两个表关联起来。当进行多表关联查询时,ShardingSphere就会根据这个关联规则,自动将分片键相同的表关联起来进行查询,从而提高查询的效率。
更新: 2023-09-11 13:29:05
原文: https://www.yuque.com/tulingzhouyu/db22bv/mvcwgxi3x1q4l7zn
短视频
分库分表大家都知道!数据量多了我就拆!拆表!拆库以提升查询效率, 那拆完后如果要查询几张不同库的表 ,那如何进行表关联查询呢???
哈喽大家好我是徐庶, 给大家讲讲分库分表下,如何进行表关联查询,需要本视频文字版的同学直接在评论区扣666.
我给大家提供3种常见的解决方案:
第1种:** 直接数据冗余**: 这是我最推荐的也是性能比较好的, 不过要注意修改数据后的一致性,当数据修改时可以用MQ做关联表的冗余数据修改。
第2种: ** 应用层查询**: 说白了就是在应用中分别查询不同表的数据然后汇总。但是会增加应用层的复杂性。
第3种: 中间件支持 :如果你用了 ShardingSphere 他本身就 提供了关联表的功能,专门用来解决多表关联查询。
只要配置一下关联规则。当进行多表关联查询时,ShardingSphere就会根据这个关联规则,自动将分片键相同的表关联起来进行查询,从而提高查询的效率。
其实如果按照业务进行拆分数据库, 合理的设计下极少情况会出现夸库关联表查询。 哪怕出现 如果对性能要求高的情况, 我还是建议用数据冗余得方式, 如果对性能要求不高并且用了ShardingSphere就直接用它自带的关联表功能就行!。 所以拆分是 一项 对系统架构设计要求极高的一个活儿。 拆的好的系统利于合理的分工, 可以更有针对性对不同业务特性的模块进行性能优化。 拆得不好反而会增加复杂性和开发成本。 如果对架构这块有需要学习的同学, 可以加我联系方式。
更新: 2024-06-03 15:32:10
原文: https://www.yuque.com/tulingzhouyu/db22bv/dbhi0m0rhwubmcg3