2016-06-06 37 views
-1

當我們談論分佈式數據庫時,他們都必須擁有相同的信息? 例如想象表客戶分佈式數據庫問題

select * from customers 

這個查詢必須在任何數據庫返回相同的結果? 換句話說,所有用戶都必須存在於所有數據庫中?例如「用戶1」必須存在於所有數據庫中?

現在想象一下,如果您使用系統,銷售和銷售_detail 並且此「插入新銷售(銷售及其細節)」必須將此新銷售插入到所有數據庫中?

以及交易如何在這裏工作?或sale-sale_details不一定必須在所有數據庫中?

分佈式事務如何工作?

+0

維基百科有很好的介紹。 – philipxy

回答

0

分佈式數據庫並不意味着數據被複制到所有的服務器機器。數據複製有點像拓撲結構。

分佈式數據庫意味着多臺機器一起工作來存儲和提供數據。他們如何做是另一回事。從維基

分佈式數據庫是在其中存儲設備不是所有附接到共同的處理單元,例如CPU和被控制由分佈式數據庫管理系統

什麼你」一個數據庫重要的是如何將數據分佈在分佈式數據庫中。

通常最常見的配送方式是Hashbased distribution。它會根據該值的每個keyID計算一個hash值,並將其存儲在其中一個節點中。是的,數據並未存儲在所有服務器中(因此分配)

Hash分佈確保數據在數據庫服務器機器或羣集之間或多或少地均勻分佈。

您的其他問題如何提供查詢可以通過首先了解服務器的所有不同節點一起工作來查找查詢結果來回答。每個數據庫服務器基本上都在自己的本地數據集上執行查詢(記住數據不分配),並回復給客戶端。客戶端API應該足夠智能以積累結果或與所有服務器連接,以便返回的閱讀器準確執行。