我們正試圖找出在實時網站上處理緩慢數據庫的最佳解決方案。使用網絡應用程序處理緩慢數據庫的策略
基本的系統架構是這樣的:
- 慢(一些讀取和寫入大多數是快速的,別人拿多秒)的Postgres數據庫。我們無法控制這一點。
- 訪問Postgres數據庫的單片離線系統。我們無法控制這一點。
- 可以訪問Postgres數據庫的快速內部服務器。我們可以爲此服務器開發和安裝軟件。
- 運行LAMP堆棧的快速Web服務器不能訪問Postgres數據庫,但可以訪問內部服務器。我們可以爲這個服務器開發軟件。
- 快速MySQL數據庫(s)可以被任何東西訪問。我們完全控制了這一點。
我們正在開發一個新的Web應用程序使用的Symfony 2.在Web服務器上運行
我們最初的計劃是建立一個RESTful API坐內部服務器,它是由Web應用程序所消耗的。我們面臨的主要問題是網絡應用程序的速度受到Postgres數據庫的速度的限制,這對用戶來說是不可接受的。
有誰知道任何策略來解決這個速度問題?
緩存是顯而易見的解決方案,我們當然可以討論數據的當前使用情況,但在某些情況下,它必須絕對保持最新狀態。例如,如果用戶保存了一些更改,這些更改應立即顯示。我們已經考慮讓API擁有自己的快速數據存儲,它從Postgres異步更新。然後,我們可以在這個快速存儲器上執行所有讀取操作,同時向寫入和Postgres寫入數據。數據中的擔心當然是一致的,並且會增加系統的複雜性。
我們正在探索使用JSON-LD來表示數據,因爲它非常適合我們正在使用的數據,並且使用標準(儘管是比較年輕的標準)應該可以緩解前進中的任何主要體系結構更改,這可能會好的發生。由於它可以直接放入文檔存儲中,因此可能會簡化該過程。
我們這裏的關鍵目標是:
- 提供良好的體驗給用戶。
- 創建一個可維護且直觀易懂的系統。
任何建議或建議將是最受歡迎的!
感謝Markus。把事情分到最後或者不是問題。我們認爲我們已經制定出了一個適用於我們用例的戰略,這與您所描述的幾乎相同;通過異步更新MySQL數據庫以經常從Postgres獲取更改,但不一定最新。然後,我們將API寫入MySQL DB和Postgres,以便這些更改最新。 我可能能夠告訴你更多關於我們的JSON-LD使用方法:-) –