0

我在Heroku上運行一個rails網站,我正在做一些性能分析和改進。Heroku Postgres查詢速度完整性檢查。我做錯了嗎?

我想知道是否有經驗的人在Heroku上分析Postgres的性能可以告訴我,如果我做的事明顯錯誤,或者如果這個數據庫調用真的可能會這麼慢。

這是一個叫做城市的表格上的SELECT,它有大約3000行。 country_id上有一個索引。

下面是一個image showing profiling of the slow call

如果你可以看到圖像,你會看到,我打電話SELECT名字,蛞蝓,... FROM「城市」,使「城市」。「COUNTRY_ID」 = 151。根據Miniprofiler的調查,這個電話(在Heroku上製作)耗時14.739秒。這個通話似乎需要2秒到25秒的時間,而且這個國家的城市數量有一定的相關性(介於2到50之間)。在開發中需要幾分之一秒。

我在$ 10計劃中運行Heroku託管Postgres。

現在我正在考慮ajax-loading這個調用在我的頁面上使用的內容,但它對我來說仍然沒有任何意義,它會讓我們花這麼長時間。

任何人有任何想法?

作爲參考,該網站可以在www.istorical.com找到並加載www.istorical.com/countries/russia當

如果你打的實際網站,你可能會發現這個調用發生不需要很長時間就可以加載,這是因爲只有在頁面緩存過期時纔會調用該調用。

編輯:這是EXPLAIN (analyze,verbose,buffers) of the query

+0

對不起,但恭喜你的網頁設計。另外,10美元的計劃是一個共享數據庫還沒有準備好生產的開發計劃,它不是? – danihp

+0

謝謝danihp。我不知道準備好生產需要什麼。我並不期待指數增長,但這是我第一個真正的生產站點,所以我不知道不同級別的流量真正需要哪些資源。我使用的是Heroku Postgres Basic,如果這清除了我的$ 10計劃的含義。 – newtorails

回答

1

運行一些更多解釋分析測試,但如果他們都像那樣出來,那麼它不是數據庫。該查詢只需要20ms。

如果其他查詢看起來沒問題,那麼它與數據庫連接不是一般的。

該頁上的任何內容與遠程服務器進行通信 - 獲取數據/圖像等?