Django запрос работает медленно, но мой sql запрос работает быстро
У меня есть очень простой вие в моем django приложении
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 debug toobar показывает ~50ms sql запрос, в то время как фактический запрос во вкладке времени составляет более 15 секунд
Итак, вы исключили запрос к БД как причину медленной работы. Вам нужно искать в другом месте. Медленно ли он работает, когда вы тестируете представление (используя тестовый фреймворк Django для GET html или POST данных и проверки html ответа)? Тогда вы исключили что-то, происходящее в браузере, например, неправильную работу скрипта или фреймворка. Остается Python-код проекта, или что-то не так с машиной, на которой он запущен. Что-то зацикливается гораздо чаще, чем следовало бы? Или на вашей машине разработчика не хватает оперативной памяти?
(О, и где находится БД? Разработчики обычно размещают ее на машине, на которой разрабатывают, но если она облачная, обратите внимание на производительность интернет-соединения и, возможно, самого сервиса).
Всегда работайте как Шерлок Холмс. "Как только вы исключите невозможное, все, что останется, независимо от степени невероятности, должно быть правдой"
BTW Недавно я отследил периодическую медлительность на моей машине разработчика до ошибки в графическом интерфейсе (Cinnamon/Linux). Конечно, это было последнее место, где я думал искать, пока не исключил абсолютно все остальное.