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

2024-03-29 14:39:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我让Django(Oracle后端,cx\uoracle5.2.1)执行一个非常简单的查询

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

x.a和x.b都被索引(db\u index=True)

我使用的页面使用Pandas计算各种记录的摘要统计信息,因此数据量相当大。你知道吗

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

当使用不同的时间段但使用相同类型的查询时,完全相同的页面会加载约50000条记录。装载大约需要30秒。我已经测试了性能,熊猫不是瓶颈。你知道吗

简单的

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

占绝大多数时间(~90%)

为什么会这样,或者有什么方法可以加快速度?你知道吗

注意,在数据库控制台中执行这些查询时,它们都非常快。似乎是Django ORM有问题。你知道吗


Tags: anddjangofromtruepandasdbindexfoo