我有一个来自 Django ORM 查询的大约 1500 条记录的查询集。我使用了 select_related() 和 only() 方法来确保查询紧凑。我还使用 connection.queries 来确保只有这个查询。也就是说,我确保每次迭代都不会调用额外的查询。
当我运行从 connection.queries 剪切和粘贴的查询时,它会在 0.02 秒内运行。但是,迭代这些记录并且不对它们执行任何操作(通过)需要七秒钟。
我该怎么做才能加快速度?是什么导致了这种缓慢?
最佳答案
当 QuerySet 充满模型对象时,它会变得非常沉重。在类似的情况下,我在查询集上使用了 .values 方法来指定我需要的属性作为字典列表,这可以更快地迭代。
Django 文档:values_list
关于python - 如何加快 Django 中大型数据集的迭代速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5656238/