PostgreSQL: вопросы на собеседовании — Страница 2
Вопросы и ответы по PostgreSQL: подготовка, примеры и типичные ошибки.
Проверьте себя по PostgreSQL: 5 вопросов, ~10 минут
Вопросов: 105. Частые идут первыми, сложные возвращаются на повторение.
- Что такое vacuum в PostgreSQL и зачем он нужен?Middle
- Что такое WAL и зачем он нужен? Что произойдёт при крэше БД без WAL?Senior· полный разбор — Jobs/Boost
- Что такое оконные функции (window functions) в PostgreSQL и приведите примеры их использования?Middle· полный разбор — Jobs/Boost
- Что такое window functions (OVER (PARTITION BY ... ORDER BY ...))? Чем ROW_NUMBER, RANK, DENSE_RANK отличаются?Middle
- Что такое Write-Ahead Logging (WAL) и почему это важно?Senior· полный разбор — Jobs/Boost
- Что такое advisory locks в PostgreSQL и когда их использовать?Senior· полный разбор — Jobs/Boost
- Чем композитный индекс (a, b, c) отличается от трёх отдельных? Когда leftmost prefix работает, а когда — нет?Middle· полный разбор — Jobs/Boost
- Как работает connection pooling (PgBouncer) и почему это важно?Senior· полный разбор — Jobs/Boost
- Что такое covering index и INCLUDE? Что такое index-only scan и при каких условиях он реально срабатывает?Middle· полный разбор — Jobs/Boost
- Что такое expression index (например, CREATE INDEX ON users (lower(email)))? Когда он спасает?Middle
- Что такое failover и какие тулзы помогают (Patroni, repmgr, pg_auto_failover)? Что такое split-brain и как его избегать?Senior· полный разбор — Jobs/Boost
- Таблица 500 ГБ, нужно добавить колонку с дефолтом. Как сделать без блокировки на часы?Senior
- Что такое materialized view? Чем отличается от обычной view? Как обновлять без блокировки (REFRESH ... CONCURRENTLY)?Middle· полный разбор — Jobs/Boost
- Что такое materialized views и чем они отличаются от обычных views?Middle· полный разбор — Jobs/Boost
- Чем отличаются Nested Loop, Hash Join, Merge Join? Когда какой эффективен?Middle
- Каковы лучшие практики настройки производительности PostgreSQL (
work_mem,shared_buffersи т.д.)?Senior· полный разбор — Jobs/Boost - Чем pg_dump отличается от pg_basebackup? Когда что использовать?Middle· полный разбор — Jobs/Boost
- У вас вырос pg_xact_age и wraparound всё ближе. Что делать?Senior· полный разбор — Jobs/Boost
- Что такое full-text search в Postgres (tsvector, tsquery, to_tsvector)? Когда хватает Postgres, а когда уходить в Elasticsearch?Middle
- Расскажите о случае, когда вам приходилось решать проблему с PostgreSQL: slow query, migration, incident, replication, backup или tuning.Middle· полный разбор — Jobs/Boost
- Как читать
pg_stat_statementsи находить top-N проблемных запросов?Middle· полный разбор — Jobs/Boost - Как безопасно добавить колонку или индекс на большую таблицу без долгой блокировки?Senior
- Что такое transaction ID wraparound и почему autovacuum не должен отставать?Senior
- Replica отстаёт на 30 минут от мастера. Алгоритм действий?Senior· полный разбор — Jobs/Boost
- Что значат Seq Scan, Index Scan, Index Only Scan, Bitmap Index Scan? Когда планировщик выбирает каждый?Middle· полный разбор — Jobs/Boost
- Что такое схемы (schemas) PostgreSQL и как они связаны с базами данных?Junior
- В чём разница между колонками
SERIALиGENERATED AS IDENTITY?Middle - Запросы стали медленнее после большого DELETE. Что произошло и как чинить?Senior· полный разбор — Jobs/Boost
- Как настроить streaming replication в PostgreSQL?Senior· полный разбор — Jobs/Boost
- Чем synchronous репликация отличается от asynchronous? Что значит synchronous_commit = on?Senior· полный разбор — Jobs/Boost
- Что такое TOAST (The Oversized-Attribute Storage Technique)?Middle· полный разбор — Jobs/Boost
- Что произойдёт, если индексов много? Какова цена индексов при INSERT/UPDATE?Middle
- Что такое transaction ID wraparound и почему его боятся DBA?Senior· полный разбор — Jobs/Boost
- Чем отличаются триггеры BEFORE/AFTER, ROW/STATEMENT? Когда триггер — это плохое решение?Middle· полный разбор — Jobs/Boost
- Чем UNION отличается от UNION ALL? Когда UNION ALL важен для производительности?Junior· полный разбор — Jobs/Boost
- Что такое UUID vs bigserial как первичный ключ? Какие у каждого плюсы и минусы (включая uuidv7)?Middle· полный разбор — Jobs/Boost
- Что такое advisory lock в Postgres и зачем он нужен?Middle
- Что такое массивы в Postgres и когда они уместны, а когда лучше нормализовать в отдельную таблицу?Middle· полный разбор — Jobs/Boost
- Что такое bloat и как его измерить?Senior· полный разбор — Jobs/Boost
- Что такое BRIN-индекс и в каких случаях он реально полезен?Middle· полный разбор — Jobs/Boost
- Что такое CTID и можно ли его использовать как «постоянный» идентификатор строки?Middle· полный разбор — Jobs/Boost
- Что такое enum и в чём его минус по сравнению с lookup-таблицей?Middle
- Что такое LISTEN/NOTIFY? Когда это уместная замена очереди сообщений, а когда — нет?Middle· полный разбор — Jobs/Boost
- Как ты делаешь major version upgrade с минимальным даунтаймом?Senior· полный разбор — Jobs/Boost
- Что такое prepared statements и почему PgBouncer в transaction mode с ними не дружит?Senior· полный разбор — Jobs/Boost