如何计时Django查询

chi*_*rox 10 django timeit

我总是使用Python的timeit库为我的小Python程序计时.现在我正在开发一个Django应用程序,我想知道如何计算我的Django函数,尤其是查询.

例如,我def index(request)在views.py中有一个在加载索引页面时会执行一些操作.如何timeit在不改变现有功能的情况下使用此特定功能的时间?

Bro*_*sto 21

如果您的django项目处于调试状态,您可以使用以下命令查看数据库查询(和时间):

>>> from django.db import connection
>>> connection.queries
Run Code Online (Sandbox Code Playgroud)

我知道这不会满足您对配置文件功能的需求,但希望它有助于查询部分!


Far*_*dLU 6

最好的方法是使用调试工具栏,您还将获得一些用于查询优化的附加功能,这将帮助您优化数据库查询。

这是另一种解决方案,您可以使用connection.queries. 这将返回已为该命令之前执行的命令创建的 SQL 命令connect.queries。您可以在使用 获取上一个查询的时间后重置查询reset_queries()。使用reset_queries()不是强制性的。

假设您有一个名为Device的模型。您可以这样测量查询时间:

>>> from django.db import connection, reset_queries
>>> from appname.models import Device
>>> devices = Device.objects.all()
>>> connection.queries
>>> reset_queries()
Run Code Online (Sandbox Code Playgroud)


bdd*_*bdd 5

调试工具栏是你想要的,它可以帮助你的时间每个查询.

或者这个片段也可以.

http://djangosnippets.org/snippets/93/