Выбор ответа Senior Django: устройство обновлено
CONN_MAX_AGE и соединения с БД
Вопрос
Что делает настройка CONN_MAX_AGE в DATABASES?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Сколько секунд держать соединение с БД открытым между запросами. По умолчанию 0: Django открывает соединение на запрос и закрывает в конце.
Варианты ответа
- Максимальное время выполнения одного SQL-запроса до его принудительной отмены
- Срок жизни сессии пользователя в базе, после которого нужен повторный вход
- Размер пула соединений: сколько соединений воркер держит одновременно
- Сколько секунд держать соединение с БД открытым между запросамиправильный ответ
Разбор
По умолчанию 0: Django открывает соединение на запрос и закрывает в конце. Постоянные соединения экономят время на установку, но каждое занимает слот у PostgreSQL, и при большом числе воркеров легко упереться в max_connections. С Django 5.1 для PostgreSQL есть и встроенный пул через psycopg (OPTIONS: {"pool": ...}), а часто ставят PgBouncer. Таймаут запросов задаётся иначе, например statement_timeout в PostgreSQL.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.