553 вопроса по PostgreSQL с технических собеседований
553 вопроса1634 компании353 технологии
Что проверяют на интервью
Как устроена подборка
На странице собраны вопросы по PostgreSQL — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: database, sql, postgresql.
Индекс первичного ключа иногда помогает через index-only scan, если он меньше таблицы и видимость строк можно проверить без чтения heap. Но точный COUNT(*) всё равно требует просмотра данных, а не O(1) счётчика.
Индекс выбирают под запросы: B-tree для равенства и сортировки, подходящий индекс для префикса, trigram для подстроки или нечёткого поиска. Для небольшой таблицы последовательное чтение может быть быстрее.
Функции PostgreSQL классифицируют по языку, результату и свойствам выполнения: SQL/PL/pgSQL, скалярные/наборные, IMMUTABLE/STABLE/VOLATILE. Агрегатные, оконные и триггерные функции имеют отдельные контракты.
Hash-индекс PostgreSQL распределяет хеши значений по buckets и предназначен для сравнений на равенство. Порядок значений он не сохраняет, поэтому не помогает диапазонам и ORDER BY.
Разделите опыт на SQL и схемы, оптимизацию, транзакции и эксплуатацию сервера. Для каждой области назовите реальные задачи и границы самостоятельности.
WAL — журнал изменений, который записывается раньше соответствующих страниц данных. Он позволяет восстановить согласованное состояние после сбоя и служит основой физической репликации и восстановления по времени.
Разберите конкретную оптимизацию: симптом, измерение, обнаруженную причину, изменение и результат. Назовите реальные планы запросов или метрики, а не только факт добавления индекса.
Основные методы индексации PostgreSQL: B-tree, Hash, GiST, SP-GiST, GIN и BRIN. Их не следует смешивать с характеристиками вроде уникального, составного или частичного индекса.
Разбейте таблицу на диапазонные партиции по дате, чтобы partition pruning исключал ненужные дни. Это уменьшает объём чтения даже без индекса внутри каждой партиции.
В PostgreSQL есть B-tree, Hash, GiST, SP-GiST, GIN и BRIN. B-tree — сбалансированное многопутевое дерево; букву B часто связывают с balanced, но это не обязательная официальная расшифровка.
Добавлю отдельный диалект генерации через существующий контракт и проверю различия типов, ключей, распределения и поддерживаемых DDL-операций. StarRocks нельзя считать просто PostgreSQL с другим именем.
Сократите объём работы запроса: выбирайте нужные колонки, фильтруйте и агрегируйте раньше, устраняйте лишние JOIN и N+1. Проверяйте план, статистику, блокировки и выход сортировок на диск.