【发布时间】:2020-05-05 17:54:33
【问题描述】:
根据我自己的研究,我了解单个数据库(非分布式)上的 SQL 连接算法背后的基本思想 - 例如。哈希连接、合并连接、循环连接。分布式连接算法是否类似于非分布式数据库上的连接算法?
例如,如果我有一个带有属性的用户表: - 用户身份 - 年龄
我有一个带有属性的评论表: - 用户身份 - Comment_id - 评论
假设分布式数据库使用 User_id 对 Users 表进行分片,并使用 Comment_id 对 Comments 表进行分片。
那么当您调用 SQL 查询时实际发生了什么:
SELECT * FROM Users INNER JOIN Comments ON Users.User_id = Comments.User_id
? User表和Comment表是否整理到一台机器上,然后执行JOIN?或者是否有某种方式可以让您进行 JOIN,即使它是分布式的?
【问题讨论】:
-
请记住,分片只是众多其他分区策略中的一种。您是专门询问分片还是一般分区?
-
我想一般是分区,但我对分片很熟悉,所以一个基于分片的例子会很棒!
-
这篇文章可能会有所帮助,因为它解释了多种方法及其优缺点:singlestore.com/blog/scaling-distributed-joins
标签: sql database distributed