2013-02-24 59 views
0

我有一個PHP的Web應用程序,必須訪問一個遠程只讀數據庫,這恰好是死緩慢(每個查詢8-10秒),問題是我不能做任何有關緩慢但是,我可以盡我所能解決這個問題。對數據庫中的數據不會有太大變化,可能每天一次或兩次,每次查詢比較小,所以我們在思考這些選項:慢速只讀遠程數據庫

  1. 每天轉儲遠程數據庫到本地數據庫,問題是我們將有數據更改延遲一天

  2. 對每個查詢使用緩存,問題是數據庫更改後總是會死緩慢的第一個查詢。

有沒有人有另一種想法?

回答

0

如何使用選項2,但也有定期更新緩存的cron作業(至少對於您最常訪問的頁面/搜索)?

+0

正如另一種選擇考慮,你可以試試這個產品,它也有一個免費的開源版本: http://www.gridgain.com/ – 2013-02-24 15:13:59

+0

你的意思是複製?我不能寫在遙控器上,甚至改變它的配置,我只能從它讀取:( – lalero 2013-02-24 15:20:17

+0

對不起,我讀了你的問題時,我愚蠢地忘記了「只讀」部分(即使它在標題中,呃 - 那是我試圖回答得太快),因爲你的問題聽起來像你有某種方式知道什麼時候正在發生更新......我正在編輯我的答案... – 2013-02-24 15:37:28

0

是否有任何添加選項的可能性

3)。急切地讓緩慢數據庫的維護者修復它?

如果不是,我認爲你可以採用馬特B的想法,但在本地處理它。 2)。爲每個查詢使用(本地)緩存。每天兩次,運行一個後端cron作業,調用所有最常見的查詢,以便您的本地數據「準備好」以快速查找新內容。這樣一來,如果用戶需要調用「主」數據庫來做一些不尋常的事情,那麼用戶應該很少會受到延遲的影響。

+0

3)這將是理想的,但這是不行的。 – lalero 2013-02-24 21:44:58

+0

2)是的,克朗可以降低延遲,迄今爲止最好的想法。 – lalero 2013-02-24 21:46:44