2016-09-06 101 views
1

您好,這是我的MySQL表使用1臺5 MySQL服務器和連接服務器togther

table_clients 

    client_id 
    client_username (UNIQUE) 
    client_password 

現在我想5個服務器和每臺服務器上安裝mysql和使用各5臺服務器上此表。

我的問題是:是否有所有5個服務器彼此連接(由1個請求),並轉換爲1個大服務器任何方式?我的意思是如果在服務器2中有一個用戶名(hiworld),則不能在其他服務器上再次創建該用戶! (將所有5臺服務器連接在同一張桌子上,並使它們成爲1臺大服務器)..有可能嗎?

我查詢過大(2-3 bilion),我想3-4服務器之間共享,但(曼聯打造的服務器)時,使用一臺服務器)

+0

MySQL簇不是更好的選擇嗎? – MarcHoH

+0

你能解釋更多嗎? – Samethings

+0

維基解釋它。 https://en.wikipedia.org/wiki/MySQL_Cluster 這將讓你在每個5臺服務器的所有數據的完整副本。它改變你的設計計劃,但這更有意義,我認爲你正在計劃。不確定是否有原因,數據庫的一個副本不應該包含數據庫數據的其他副本。 –

回答

1

How to create linked server MySQL

「交聯狀服務器「存在於Ms Sql上的功能是您尋找的東西的類型。

你需要做一些插入扳機的是檢查,看看是否該名稱在其他服務器上存在。

但是,這將是緩慢的加有兩個服務器在同一時間獲得相同的名稱和允許插入,因爲當它檢查了其他的名字是不是已經存在的風險。

這樣做的沒有真正的好辦法。一個想法可能是爲table_clients只有一個主表。讓它成爲奴隸關係的主人。無論何時您必須執行插入到主表/數據庫的插入,然後將該數據複製到從屬實例。但是你仍然需要交叉鏈接服務器才能正常工作。你所描述的將需要在5臺服務器上等待,以確定名稱是否已被使用。這樣你只需要檢查一臺服務器。

+0

一些網站,如Facebook和...他們爲重型客戶做什麼!所有的客戶信息都存在於一臺服務器上? – Samethings

+0

像Facebook這樣的網站沒有使用SQL兼容的數據庫。他們正在使用「大數據」解決方案。 Sql的這種事務隔離需求被破壞。他們正在使用各種「雲」數據庫。這些不符合事務隔離的Sql規範。他們的雲數據庫解決方案允許您插入雲中的本地副本。然後,這些數據會在其他服務器上傳播,直到它們全部被傳播。在世界不同地區同時插入重複的風險都將被接受。 Facebook有許多缺陷。 –

+0

你正在嘗試遵循「Sql規則」,如果你想獲得速度,你必須刪除Sql規則並遵循「大數據」解決方案。您還必須接受重複項並找到一種方法將其刪除。這是雲,大數據解決方案速度更快的諸多折衷之一。 –