Выбор ответа Senior Django: устройство обновлено

CONN_MAX_AGE и соединения с БД

Вопрос

Что делает настройка CONN_MAX_AGE в DATABASES?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Сколько секунд держать соединение с БД открытым между запросами. По умолчанию 0: Django открывает соединение на запрос и закрывает в конце.

Варианты ответа

  1. Максимальное время выполнения одного SQL-запроса до его принудительной отмены
  2. Срок жизни сессии пользователя в базе, после которого нужен повторный вход
  3. Размер пула соединений: сколько соединений воркер держит одновременно
  4. Сколько секунд держать соединение с БД открытым между запросамиправильный ответ

Разбор

По умолчанию 0: Django открывает соединение на запрос и закрывает в конце. Постоянные соединения экономят время на установку, но каждое занимает слот у PostgreSQL, и при большом числе воркеров легко упереться в max_connections. С Django 5.1 для PostgreSQL есть и встроенный пул через psycopg (OPTIONS: {"pool": ...}), а часто ставят PgBouncer. Таймаут запросов задаётся иначе, например statement_timeout в PostgreSQL.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.