Значительная разница в производительности django view по сравнению с django shell в docker
Я сталкиваюсь со значительной разницей в производительности при выполнении одного и того же необработанного SQL-запроса в моем Django-приложении. Запрос выполняется примерно за 0,5 секунды в оболочке Django, но занимает около 2 секунд при вызове из представления Django. Оба запроса выполняются в изолированной среде контейнеров Docker. Я изолировал выполнение запроса в функции execute_query(), используемой в обоих контекстах, отключил DEBUG и попытался отключить транзакции, но безрезультатно. Вот эта функция:
def execute_query():
st = time.time()
cursor = connection.cursor()
cursor.execute("""
SELECT
cars.created_at,
cars.owner_id,
cars.status,
cars.color,
cars.type,
owners.source
FROM cars
INNER JOIN owners
ON cars.owner_id = owners.id
WHERE
owners.membership_id = 'example_id'
AND cars.created_at BETWEEN '2022-07-15 23:59:59' AND '2025-09-14 00:00:00'
AND cars.is_active = False
AND cars.description IS NOT NULL
AND cars.type != 'electric'
LIMIT 50000
""")
rows = cursor.fetchall()
end = time.time()
print(f"Query took: {end - st} seconds")
return end - st
Мне интересно, чем может быть вызвана разница в производительности, о которой говорилось выше.