2014-06-23 160 views
1

我想知道這是否正常。我註冊了亞馬遜RDS網絡服務來加速我的PHP應用程序。我有基本的debian虛擬服務器,一些查詢需要4s執行。所以我認爲託管在亞馬遜的雲端可以加快運行時間。 所以我導出數據庫,導入amazon RDS,發現運行時間幾乎高出2倍。Amazon RDS速度

其中一個原因可能是我擁有的帳戶類型 - 免費(db.t1.micro)。 第二 - 我在歐盟和可用區域設置爲美國西部-1(出於某種原因,我不能選擇歐盟)。但是,我只檢查了SQL執行時間,沒有網絡時間,所以在這種情況下距離不應該很重要。

那麼它是否比非雲解決方案慢,僅僅是因爲帳戶類型?我的數據庫不是那麼大 - 大約25MB。

+0

您是否嘗試過優化您的查詢? –

+0

我誠實地發現了相同類型的東西。我使用的是微型帳戶,發現RDS交互速度很慢。我切換到把EC2上的MySQL數據庫,事情要快得多。就我而言,很可能是因爲我沒有正確配置某些東西,但是當數據庫位於EC2上時確實有一定的加速。 – brechmos

+0

只有25MB的數據,所有的實例類型都可以工作。你需要看看你的查詢。 – Martin

回答

0

有很多原因,一個數據庫查詢可能會很慢:

  • 查詢
  • 表沒有建立很好的複雜性(例如,沒有索引)它的機器上運行的
  • 功率( AWS微型實例可能會比你的筆記本電腦弱)
  • 數據庫機器和客戶端機器之間的網絡延遲(我有一個案例在我的手中,客戶端在單個頁面加載中接近1000個查詢; RDS實例和網絡服務器基本上全部閒置與此同時,又頁面加載超慢(約2秒),因爲接近1000個查詢需要遍歷EC2實例和RDS實例之間的AWS內部網絡來回)

你需要弄清楚的是什麼這適用於你以及你如何減輕它。對於爲什麼有些緩慢,沒有一般的答案。

+0

就我而言,我認爲這是最後一點(我有適當的索引等)。我做了大量的檢查,包括頁面生成速度測試(php),mysql分析等等,這一切似乎都很快。 :-) – brechmos

+0

我不認爲我的查詢是很好的優化。但這並不重要,因爲我在與我的虛擬服務器上的數據庫完全相同的數據庫上使用了相同的查詢。如果優化是這種情況,那麼我只比較2個非優化查詢。但即使如此,我期望在amazanon上執行非優化查詢比在基本虛擬服務器上優化查詢更快 –

+0

@Michal你不需要和我討論,我只是列出了*可能會很慢的事情。 :)你必須弄清楚究竟是什麼情況。看看所有可用的監測圖表並找出它。 :) – deceze