2016-06-06 49 views
-1

当我们谈论分布式数据库时,他们都必须拥有相同的信息? 例如想象表客户分布式数据库问题

select * from customers 

这个查询必须在任何数据库返回相同的结果? 换句话说,所有用户都必须存在于所有数据库中?例如“用户1”必须存在于所有数据库中?

现在想象一下,如果您使用系统,销售和销售_detail 并且此“插入新销售(销售及其细节)”必须将此新销售插入到所有数据库中?

以及交易如何在这里工作?或sale-sale_details不一定必须在所有数据库中?

分布式事务如何工作?

+0

维基百科有很好的介绍。 – philipxy

回答

0

分布式数据库并不意味着数据被复制到所有的服务器机器。数据复制有点像拓扑结构。

分布式数据库意味着多台机器一起工作来存储和提供数据。他们如何做是另一回事。从维基

分布式数据库是在其中存储设备不是所有附接到共同的处理单元,例如CPU和被控制由分布式数据库管理系统

什么你”一个数据库重要的是如何将数据分布在分布式数据库中。

通常最常见的配送方式是Hashbased distribution。它会根据该值的每个keyID计算一个hash值,并将其存储在其中一个节点中。是的,数据并未存储在所有服务器中(因此分配)

Hash分布确保数据在数据库服务器机器或群集之间或多或少地均匀分布。

您的其他问题如何提供查询可以通过首先了解服务器的所有不同节点一起工作来查找查询结果来回答。每个数据库服务器基本上都在自己的本地数据集上执行查询(记住数据不分配),并回复给客户端。客户端API应该足够智能以积累结果或与所有服务器连接,以便返回的阅读器准确执行。