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