首页 > 解决方案 > 如何查看django对象查询速度

问题描述

我想在具有不同功能的 django 模型中测试不同的文本搜索方式。有没有办法在控制台或模板中打印查询数据库需要多长时间?在此先感谢(可能没有必要,但仍然:这些是我要测试速度的 3 个功能。)

def first_results(request):
    if request.method == 'POST':
        query = request.POST.get('query')
        results = Page.objects.search(query)
        return render(request, 'results.html', {'results': results})
    else:
        return render(request, 'home.html')


def second_results(request):
    if request.method == 'POST':
        query = request.POST.get('query')
        results = Page.objects.annotate(search=SearchVector('title', 'content')).filter(
            search=query
        )
        return render(request, 'results.html', {'results': results})
    else:
        return render(request, 'home.html')


def third_results(request):
    if request.method == 'POST':
        query = request.POST.get('query')
        results = Page.objects.filter(
            Q(title__contains=query) | Q(content__contains=query)
        )
        return render(request, 'results.html', {'results': results})
    else:
        return render(request, 'home.html')

标签: pythondjango

解决方案


如果您想要更好地分析查询,我建议您使用Django Debug Toolbar

如果您想要一些简单的东西,请在控制台中使用Django DB Logging 。遵循本指南


推荐阅读