2
我一直在使用主要是.values()
加快我的Django查询。使用.only()与.values()比较慢多少?
最近,我试图用我假定.only()
只比没有处理字典(如关键错别字,不会有代码自动完成)
但似乎额外的好处值稍慢在装载1000个对象时,.only()
比我使用.values()
(大约需要4s)慢了〜0.5-1秒。
你们有没有经历类似的表现,并且任何人都可以证实或否定这种观察?
我一直在使用主要是.values()
加快我的Django查询。使用.only()与.values()比较慢多少?
最近,我试图用我假定.only()
只比没有处理字典(如关键错别字,不会有代码自动完成)
但似乎额外的好处值稍慢在装载1000个对象时,.only()
比我使用.values()
(大约需要4s)慢了〜0.5-1秒。
你们有没有经历类似的表现,并且任何人都可以证实或否定这种观察?
尽管查询本身可能需要花费相当长的时间才能完成,但我怀疑你看到的性能差异是在Python方面。当你使用'only'方法时,你仍然可以从数据库中得到完整的Django对象。这些设置昂贵并占用更多内存。处理超过几千件物品时,它们实际上几乎变得难以管理。
正如您所知,'values'方法将所有内容都放入标准的Python字典中。这些工作起来很困难,但是安装时间并不重要,内存使用量也大大减少。
如果您想查看实际查询长度差异,请查看django debug toolbar。它会给你一个方便的配置文件列表,为页面加载所做的每个查询。