Django:极大的查询集执行缓慢(非线性检索时间)

时间:2017-04-07 13:51:34

标签: python django oracle django-models django-views

我正在使用Django(Oracle后端,cx_Oracle 5.2.1)执行一个非常简单的查询

   select x.y, x.z from x where x.a = 'foo' and x.b = 'bar'

x.a和x.b都被编入索引(db_index = True)

我使用的页面使用Pandas计算各种记录的汇总统计信息,因此数据量非常大。

我有一个页面加载~15000条记录的子集。这需要大约2秒钟才能加载

完全相同的页面,当使用不同的时间帧时,但使用相同类型的查询加载~50000条记录。加载需要约30秒。我已经对性能进行了基准测试,并且Pandas不是瓶颈。

简单

my_queryset.all().values(('y', 'z')) 

占绝大部分时间(~90%)

为什么会这样,或以任何方式加速它?

值得注意的是,在数据库控制台中执行这些查询时,它们都非常快。似乎是Django ORM存在问题。

0 个答案:

没有答案