我在 psql 中有一個數據庫表,其中包含 10,000,000 行和 60 列(功能)。我定義了一個 Django 查詢集,如下所示:MyQ=MyDataBase.objects.filter(Name='Mike', date=date(2018, 2, 11), Class='03')只有 5 行滿足上述過濾條件。但是當我嘗試類似的東西時MyQ.count() #which equals 5或者MyQ.aggregate(Sum('Score'))['Score__sum'] #which equals 61每個大約需要 3 分鐘給我結果。這不是很奇怪嗎?查詢集不應該只關注我們告訴他們關注的行,從而使生活更輕松嗎?計數 5 行或對其中一個字段求和不能花費那么長時間。我究竟做錯了什么?我也應該這樣說。我第一次在這張桌子上嘗試這段代碼時,一切都很好,可能需要 1 秒才能捕捉到結果,但現在 3 分鐘真的很煩人。從那時起,我沒有更改數據庫或代碼中的任何內容。
如何在具有 60 個功能的 1000 萬行數據庫上加速 Django 查詢聚合?
慕碼人8056858
2021-11-09 15:42:16