2015-06-16 22 views
-1

我打算使用mysql複製,有1個主站和1個從站。我的應用程序是用PHP編寫的。我添加了一個將所有寫入重定向到主服務器和所有從服務器的讀取的層。我擔心這裏的延遲。我的應用程序是一個訂單管理系統。這樣的體系結構會遇到什麼問題,以及我如何才能得到它。使用mysql複製時的性能/延遲

回答

0

根據您使用主站的方式(以及您的基礎架構是如何加載的),將會出現複製滯後,無法避免這種情況。即使它是「僅」100毫秒,也可能足以讓您惹一個或多個綜合瀏覽量。

有很多技術可以儘量避免造成延遲,例如this article,但如果發生這種情況,並且您的代碼還沒有準備好,它仍然會讓您陷入酸菜。

如果從設備的提取失敗,您將不得不實現某種方式來臨時選擇主設備上新添加的數據。因此,如果select未能返回數據,但會話中有(例如)新數據的指示符,則會嘗試查詢主數據。如果select成功並且交換機在那裏,請將其刪除。這將從主站中選擇新的數據,直到在從站上確認爲止。

顯然這隻需要發生在非常重要的記錄(例如用戶註冊,否則他們會在下一個瀏覽量中註銷)。用戶帳戶中的單個訂單不足以保證這一點。它不是一個問題,它只會在幾秒鐘後出現在總覽中。

有一件事:如果您決定將您的用戶會話存儲在數據庫中:double issue!如果複製滯後,則添加的變量將不會在您將其重新加載到下一頁時出現。

總的來說,新添加的數據會有一些問題,但只要你的代碼假設它不會存在「一段時間」,你應該沒問題。國際海事組織的優勢仍然大於問題,特別是對於訪問量大的網站。