所以我正在和一些我的朋友一起開發一個Rails端項目,這需要加載很多種子數據。我有一個JSON文檔中的種子數據,它現在只包含3200個JSON對象,每個JSON對象具有相同的3個字段名稱。優化數據庫查詢軌跡
我已經解析並在Rails中植入了這些數據,爲每個JSON對象創建一個新記錄。我應該注意到該對象有幾個has_many
關聯。
問題是,在我用JSON文件播種數據庫之後,當我試圖將所有3200條記錄加載到頁面中時(使用簡單的ModelName.all.each
塊),加載時間很荒謬......約爲17826ms
(17.8秒)。
根據控制檯,它說(Views: 16252.4ms | ActiveRecord 1522.9ms)
。我研究過實現急切的加載和預加載(並且我仍然在努力)。
我的問題是,我怎樣才能進一步優化呢?我試過ModelName.preload(:associationName)
預加載,但這似乎並沒有改變repsonse的時間(可能我做得不正確)。我腦子裏想的是3200條記錄不是很多...爲什麼這麼長時間?在項目的早期,像Redis那樣快速整合一些東西是否可行?
更多信息,你把'ModelName.all.each'的看法? – tagCincy
可以粘貼示例模型數據以及當您說ModelName.all時正在執行的查詢。也粘貼相關的型號代碼。 –
@tagCincy'ModelName.all'是一個控制器變量,它在每個視圖中被調用。 – CisBae