表连接在数据库中是很常见的操作,在分布式数据库中一般如何实现呢?
在分布式环境下,网络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
今日推荐
周排行