首页 > 解决方案 > django查询很慢,但是我的sql查询很快

问题描述

我的 django 应用程序中有一个非常简单的 vie

def notProjectsView(request):
context = {
    'projects':notProject.objects.all(),
    'title':'Not Projects | Dark White Studios'
}
return render(request, 'not-projects.html', context)

当我删除上下文时,它运行得很快,但它是一个简单的查询,不应该那么长,数据库也没有很多记录,它有 1 个项目,在模板中我查询project.notProjectImage.all可能导致 n+ 1 个问题,但我删除了该部分进行测试,它仍然很慢 Django 调试工具栏显示约 50 毫秒的 sql 查询,而时间选项卡中的实际请求超过 15 秒

标签: pythondjangodjango-debug-toolbar

解决方案


因此,您已经消除了数据库查询,因为它很慢。你需要去别处看看。测试视图时是否很慢(使用 Django 测试框架获取 html 或 POST 数据并检查 html 响应)?然后你就消除了浏览器中发生的一些事情,比如行为不端的脚本或框架。这会留下项目的 Python 代码,或者它正在运行的机器有问题。循环的东西是否比它应该的要多得多?或者您的开发人员机器是否因为内存不足而出现页面抖动?

(哦,数据库在哪里?开发人员通常将它托管在他们正在开发的机器上,但如果它是基于云的,请查看互联网连接的性能,可能还有服务本身的性能)。

永远像福尔摩斯一样工作。“一旦你消除了不可能,剩下的,无论多么不可能,都必须是真相。”

顺便说一句,我最近发现我的开发人员机器上偶尔出现的缓慢是(Cinnamon/Linux)GUI 中的一个错误。那当然是我想去的最后一个地方,直到我完全消除了其他所有东西。


推荐阅读