我有一个大型数据库,从中获取代表某个表的字典列表(dictfetchall)。然后我应该根据我从db获得的表格制作几种形式。桌子很大 - 它大约有25k行,因此我的表格构建得非常慢 - 整个页面大约12秒,这对我来说是不可接受的。有没有提高性能的技巧? 一般来说,我的代码看起来像这样:
all_filters_table = get_all_subord_struct()
for row in all_filters_table:
filters[row[struct_type_id] - 1].append(row['id_struct'], row['struct_name'])
SomeForm.OPTIONS = filters[i][:1000]
context['form'] = SomeForm()
更新 我正在处理一个存储过程,它给了我大约25k行,我很难改变它。是否有任何快速变体来处理我拥有的大数据?
答案 0 :(得分:0)
从代码中不确定,但看起来你是从数据库中获取所有行,然后在结果列表上进行过滤。
您确实需要过滤查询请求,才能获得所需内容。例如,如果您需要最后1000条记录,可以使用以下内容:
Data.objects.filter(<some filter>)[:1000]