我需要建议,这样我的查询速度会更快—因为它占用了太多的时间,并且分割了片段,我的表已经包含了数百万数据,这是在有数百万数据的情况下,这种情况下的最佳选择。 我已经应用了创建进程、索引,但查询速度仍然很慢
pool = mp.Pool(processes=mp.cpu_count())
results = pool.map(filtar_query,json_f)
def filtar_query(args):
fecha, argumentos = args[0], args[1]
query = Modelo.objects.only('fecha','campo2','campo3').filter(fecha__date=fecha).filter(**argumentos).values('fecha','campo2','campo3')
df= pd.DataFrame(query)
df = df.groupby(fecha)
在需要花费太多时间的部分,是提出建议会给我的问题
您需要使用
values
而不是only
。ORM中的only
子句为每个记录创建一个实例,其中values
返回所有值的字典确保在
filter
子句中的所有列上都有索引值得一看实际生成的SQL,并运行
EXPLAIN
以查看查询速度减慢的地方,从而确保创建了正确的索引以避免完整的表扫描相关问题 更多 >
编程相关推荐