当我们谈论分布式数据库时,所有这些数据库都必须具有相同的信息?例如,想象表客户
select * from customers
这个查询必须在任何数据库中返回相同的结果?换句话说,所有用户必须存在于所有数据库中?例如“用户 1”必须存在于所有数据库中?
现在想象一个表 master-detail,例如,sale 和 sale_detail,如果你使用的是 sistem,这个“插入一个新的销售(销售及其详细信息)”必须在所有数据库中插入这个新的销售?
以及交易在这里如何运作?或 sale-sale_details 不一定在所有数据库中?
分布式事务是如何工作的?
分布式数据库并不意味着将数据复制到所有服务器计算机上。数据复制有点像拓扑结构。
分布式数据库意味着什么是多台机器协同工作来存储和服务数据。他们是如何做到的是另一回事。来自 Wiki
分布式数据库是一种数据库,其中存储设备并非全部连接到 CPU 等通用处理单元,并且由分布式数据库管理系统控制
您要问的是数据如何在分布式数据库中分布。
通常最常见的分发方法是Hashbased distribution
。它针对值的每个key
或ID
计算hash
值,并将其存储在其中一个节点中。是的,数据未存储在所有服务器中(因此分布)
Hash
分布可确保数据在数据库服务器计算机或群集之间或多或少均匀分布。
您的另一个问题是如何提供查询可以通过首先了解服务器的所有这些不同节点一起工作以查找查询的结果来回答。每个数据库服务器基本上都对其自己的本地数据集执行查询(记住数据是分发而不是复制的),然后回复给客户端。客户端 API 应该足够智能,可以累积结果或与所有服务器连接,以便返回的读取器准确执行。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(86条)