2013-09-27 31 views
0

現在我遇到了MySQL應用程序的問題。其實我很擔心我可能在幾個月內遇到的問題。數據庫上的數據太多 - 需要「複製」決策

下面是這種情況:我正在開發一個Web應用程序,它將有很多客戶端使用它。它是一個具有獨特核心和幾個適應性(運行在同一核心上)的應用程序,因此對於所有適應性而言,數據庫都是相同的。每個適應都有一個或多個客戶端使用它。

因此,我的數據庫有超過200個表,並且每個客戶端每天有一些表可能有超過500行。我擔心,當數據庫變得太大時,選擇可能非常昂貴。

我正在考慮創建幾個數據庫(相同的模式),應用程序應該根據客戶端的登錄情況決定使用哪個數據庫。但是我會遇到更新模式的問題(我將不得不更新每個數據庫)。我的應用程序可以選擇數據庫,這不是問題。

  • 你認爲MySQL的能真正停止,如果它有很多的數據?
  • 有沒有辦法輕鬆更新幾個相同的模式數據庫?
  • 主/從方式解決了我的問題?

我認爲重要的是要知道,在所有表中,我都有一個列告訴我該行所屬的客戶端,並始終在所有選擇查詢中將它用作WHERE子句。

所以我需要幫助的是決定要做什麼。你能幫我解決這些問題嗎?你有其他更聰明的解決方案嗎?

我不知道它是否重要,但我使用PHP。

謝謝大家!

回答

1
  1. 停止是一個大詞,但它可能變慢。從我在這裏閱讀的內容來看,你不會有很多數據。它更多的是關於內存大小,所以你應該關注的不僅僅是行數。只要照顧你的索引。

  2. 有系統來管理這個,但它取決於如何/你在哪裏得到你的數據庫結構。我假設你使用SQL查詢來更改模式,但是,在所有數據庫上自動執行該查詢不應該太困難嗎?如果它們將是不同於織物可以提供幫助的機器。

  3. 如果是太多的讀取,是的,它會解決您的問題。

注意

從我迄今看到你沒有那麼多的數據,沒有什麼MySQL不能辦理今後的歲月裏。

1

每天500行很好,這不是一個高負載。

數據庫/或數據庫中的多個客戶端稱爲「多租戶系統」。在同一個數據庫中保留多個租戶有點棘手,但可以實現。

您需要爲您的表定義索引,其中應包含客戶端ID以及其他任何列。

您可能還想要非規範化客戶端ID &將它作爲所有主要表中的列提供......因此您可以將它放在索引中。

MySQL沒有使用具有完美的可靠性。現在更好,我不會建議更改/另一個DB,特別是當你使用PHP時,但要確保定期運行自動備份(比如每晚)。