我正處於一個新的寵物項目MVP的最後階段......並試圖改善查詢時間。Rails - 優化數據庫查詢
我的主表目前有大約150萬條記錄...並且預計將增長到超過100萬...甚至可能還有1000萬個以上。這些記錄屬於可以被用戶阻止的父項。當父母被阻止時,孩子在任何視圖中都不應再顯示,直到父母被解除封鎖。用戶可以有100以上的受阻父母向上...
目前,我有收到封鎖parent_ids數組的範圍...
scope :parent_filter, ->(parent_ids) { where.not(parent_id: [*parent_ids]) }
的PARENT_ID在子表索引。
這導致查詢時間約250-350ms .... 有沒有更好的方法來做到這一點?我在想也許是一個3路加入父母和parent_child表可能會更好......但不確定。
如果它有所作爲,我現在在$ 7 Dyno & $ 9 Postgres現在... 任何幫助,將不勝感激!
嘿嘿,PARENT_ID被索引....和我有我使用盡可能多的視圖緩存已經能夠找出 - 只有視圖/俄羅斯娃娃緩存到目前爲止...我的應用程序需要現在得到參數...哪些不能很好地與緩存... 我經歷了很多你在這個項目中早些時候描述......並且確實有很大的幫助......當加載主對象索引頁面時,只有一個查詢似乎很慢,espec隨着該範圍的參與。 – tkz79
沒有這個範圍: 加載(163.8ms) 加上它: 加載(224。9ms) 我當時希望能在9美元的Heroku數據庫(它似乎沒有內存),這是怪罪......但每次我想到目前爲止,事實證明我是這樣做的不做/做錯了。 – tkz79
我錯過了我的默認排序列的索引....謝謝你好心情! – tkz79