分布式数据库中的半连接

表连接在数据库中是很常见的操作,在分布式数据库中一般如何实现呢?
在分布式环境下,网络IO的速度远远小于CPU操作的速度,因此减小网络传输量能极大提高性能,可以采用半连接的方法
数据库的exists和in查询就是一种半连接,即在第二张表里找到可以连接的数据后,立即返回第一张表里的数据,在分布式环境下,同样可以采用这种方法.

比如server1上有分片T,在server2上有分片S(分片可以理解为表的分区),要做T和S在T.b和S.b的连接

T                      S
a       b              b       c
1       2              2       3
3       4              3       5
5       6              4       3
4       8              4       6
半连接的操作过程为
1 在server2上求S.b的不重复集合S'(2,3,4)
2 把S'传到传到server1上
3 做T和S'的半连接,结果为T'
T'
a       b1       b2
1       2       2
3       4       4

4 把T'传到server2上,进行T'和S的连接,得到最终结果
a       b1       b2       c
1       2        2        3
3       4        4        3
3       4        4        6

猜你喜欢

转载自kabike.iteye.com/blog/2151990