Значительная разница в производительности 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

Мне интересно, чем может быть вызвана разница в производительности, о которой говорилось выше.

Вернуться на верх