python - 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 秒
解决方案
因此,您已经消除了数据库查询,因为它很慢。你需要去别处看看。测试视图时是否很慢(使用 Django 测试框架获取 html 或 POST 数据并检查 html 响应)?然后你就消除了浏览器中发生的一些事情,比如行为不端的脚本或框架。这会留下项目的 Python 代码,或者它正在运行的机器有问题。循环的东西是否比它应该的要多得多?或者您的开发人员机器是否因为内存不足而出现页面抖动?
(哦,数据库在哪里?开发人员通常将它托管在他们正在开发的机器上,但如果它是基于云的,请查看互联网连接的性能,可能还有服务本身的性能)。
永远像福尔摩斯一样工作。“一旦你消除了不可能,剩下的,无论多么不可能,都必须是真相。”
顺便说一句,我最近发现我的开发人员机器上偶尔出现的缓慢是(Cinnamon/Linux)GUI 中的一个错误。那当然是我想去的最后一个地方,直到我完全消除了其他所有东西。
推荐阅读
- angular - p-menuitem 不是已知元素 - primeng
- ffmpeg - 未知编码器“libwebp”
- javascript - Chrome 插件无法在 Api 调用中使用自定义用户代理
- ssl - TLS 握手失败,但通信未关闭
- c++ - boost.geometry 多边形差异返回自相交结果(或错误地检测到它)
- ios - 带有偏移 UIImage 的 UIKit UIImageView
- javascript - 第二次点击Ajax刷新数据?
- html - Google Web Designer 中的 Facebook 可播放广告
- nlp - 寻找一种算法来识别字符串的复杂性/唯一性,或者更确切地说是两个相同字符串来自同一来源的机会
- kubernetes - 如何确保入口控制器 Pod 在每个包含后端服务 Pod 的节点上运行?