2013-07-19 49 views
4

我试图基准几个不同查询的速度,它们在Django 1.4上用Postgres返回相同的东西。不幸的是,如果我使用:定时Django数据库查询

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

两个等效或类似的查询,最终被推迟到查询缓存。任何方式我可以清除这个缓存或有一个更好的方式来比较两个查询的速度?

+0

我都肯定会想知道为好。 +1 –

+1

为什么不安装[django-debug-toolbar](https://github.com/django-debug-toolbar/django-debug-toolbar) – mVChr

+0

已经安装了django-debug-toolbar,但它不起作用许多实例(即AJAX请求),并且在基准查询中效率不高,因为我需要将它们加载到视图中并进行手动测试。另外,如果您运行两个相同的查询,因为它的缓存,第二个查询的时间将会缩短。 – zhuyxn

回答

2

对于我的分析,我用这样的:

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

此外,请查看http://stackoverflow.com/questions/2133627/using-django-db-connection-queries – steffens21

+0

此解决方案与我的以上建议有相同的问题,这是因为Django缓存查询集,如果您在固定时间段内运行相同或相似的操作两次,那么检索时间将显着不同): – zhuyxn