我主要使用.values()来加速我的 Django 查询。
最近,我尝试使用.only()我认为仅比值稍慢的 ,并且具有不必处理字典的额外好处(例如关键拼写错误,没有代码自动完成)
但似乎在加载 1000 个对象时,.only()比我使用时慢了大约 .5-1 秒.values()(大约需要 4 秒)。
你们中有人经历过类似的表现吗,谁能证实或否认这一观察结果?
尽管查询本身可能需要类似的时间来完成,但我怀疑您看到的性能差异是在 Python 方面。当您使用 'only' 方法时,您仍然可以从数据库中获取完整的 Django 对象。这些设置起来很昂贵并且需要更多的内存。当处理超过几千个项目时,它们实际上变得几乎完全无法管理。
正如您所知,'values' 方法将所有内容放入标准 Python 字典中。这些更难使用,但设置时间很短,内存使用量也大大减少。
如果要查看实际查询长度差异,请查看django 调试工具栏。它将为您提供为页面加载所做的每个查询的方便的配置文件列表。
| 归档时间: |
|
| 查看次数: |
1554 次 |
| 最近记录: |