Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 分布式数据库问题_Database_Distributed Transactions - Fatal编程技术网

Database 分布式数据库问题

Database 分布式数据库问题,database,distributed-transactions,Database,Distributed Transactions,当我们谈论分布式数据库时,所有数据库都必须具有相同的信息吗? 例如,想象一下桌上的顾客 select * from customers 此查询必须在任何数据库中返回相同的结果? 换句话说,所有用户必须存在于所有数据库中?例如,“用户1”必须存在于所有数据库中 现在想象一个表主细节,例如sale和sale\u细节 如果您使用的是sistem,并且必须“插入新销售(销售及其详细信息)”才能在所有数据库中插入新销售 交易在这里是如何运作的?或者销售详情不必出现在所有数据库中 分布式事务是如何工作的?

当我们谈论分布式数据库时,所有数据库都必须具有相同的信息吗? 例如,想象一下桌上的顾客

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

现在想象一个表主细节,例如sale和sale\u细节 如果您使用的是sistem,并且必须“插入新销售(销售及其详细信息)”才能在所有数据库中插入新销售

交易在这里是如何运作的?或者销售详情不必出现在所有数据库中


分布式事务是如何工作的?

分布式数据库并不意味着数据被复制到所有服务器机器上。数据复制是一种拓扑结构

分布式数据库意味着多台机器协同工作来存储和服务数据。他们如何做到这一点是另一回事。来自维基

分布式数据库是一种数据库,其中存储设备并非全部连接到公共处理单元(如CPU),而是由分布式数据库管理系统控制

您要问的是,数据是如何分布在分布式数据库中的

通常最常见的分发方法是基于哈希的分发。它根据值的每个
ID
计算
散列
值,并将其存储在其中一个节点中。是,数据并非存储在所有服务器中(因此分布)

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


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

Wikipedia有很好的介绍。