【问题标题】:Timing Django DB Queries定时 Django DB 查询
【发布时间】:2013-07-18 07:44:06
【问题描述】:

我正在尝试对几个不同查询的速度进行基准测试,这些查询在带有 Postgres 的 Django 1.4 上返回相同的内容。不幸的是,如果我使用:

 import logging
 l = logging.getLogger('django.db.backends')
 l.setLevel(logging.DEBUG)
 l.addHandler(logging.StreamHandler())

两个等效或相似的查询,最终被推迟到查询缓存中。有什么方法可以清除此缓存或有更好的方法来比较两个查询的速度?

【问题讨论】:

  • 我也非常想知道。 +1
  • 为什么不安装django-debug-toolbar
  • 已经安装了 django-debug-toolbar,但它在很多情况下都不起作用(即 AJAX 请求),并且在基准查询方面效率不高,因为我需要将它们加载到视图中并手动测试。此外,如果您运行两个相同的查询,由于它被缓存,第二个查询的时间会大大缩短。
  • 你不应该对 ajax 请求进行计时,因为它们本质上是异步的。不过,在 python 中使用 timeit 模块可以帮助您计算视图的执行时间。

标签: python django postgresql


【解决方案1】:

为了我的分析,我使用了这样的东西:

from django import db
for query in db.connections['default'].queries:
    print query, query['time']

【讨论】:

  • 这个解决方案和我的问题和上面的建议一样,就是由于Django缓存查询集,如果你在固定的时间内运行两次相同或相似的操作,检索时间会显着增加不同):
猜你喜欢
  • 1970-01-01
  • 2012-01-28
  • 2012-06-08
  • 2012-08-13
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多