我在 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 分钟真的很烦人。从那时起,我没有更改数据库或代码中的任何内容。
米脂
相关分类