awesome-everything EN
↑ Обратно к восхождению

Базы данных

Трек баз данных: тест на припоминание

Суть Промпты на свободное припоминание поперёк трека баз данных — схема, индексы, планы, MVCC, пулинг, миграции, шардинг. Сначала ответь по памяти, затем раскрой и сравни.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 14 min

Припоминание бьёт перечитывание. На каждый промпт восстанови полный ответ по памяти, прежде чем открыть образец — они идут поперёк всего трека, поэтому именно усилие связать понятия закрепляет их.

Цель

Восстанови хребет трека, не подглядывая: когда гнуть нормализацию, как cost-модель индекса выбирает скан, почему ошибки оценки строк каскадируются, что snapshot-изоляция защищает и не защищает, математика размера пула и как ключ шардирования ко-локирует или рассыпает работу.

Вспомните перед уходом
  1. 01
    Когда правильно гнуть реляционные правила — денормализовать, хранить JSONB или даже отключать foreign keys?
  2. 02
    Как планировщик выбирает между index scan и sequential scan и почему ведущая колонка composite-индекса так важна?
  3. 03
    Почему ошибки оценки строк каскадируются в катастрофически плохие планы и как стабилизировать план под нагрузкой?
  4. 04
    От чего защищает snapshot-изоляция MVCC в PostgreSQL, от чего нет и как долгая транзакция вызывает bloat таблицы?
  5. 05
    Дай рассуждение о размере пула PgBouncer перед Postgres: почему backend тяжёлый, какого размера серверный пул и в чём ловушка prepared statement в transaction mode?
  6. 06
    Как выбрать ключ шардирования, почему низкокардинальный ключ создаёт hot shard и каков безопасный порядок действий до шардинга вообще?
Итог

Если ты смог восстановить каждый ответ по памяти, ты держишь хребет трека от начала до конца: нормализуй по умолчанию и гни лишь ради названного, чьего-то компромисса; пусть ведущая колонка индекса совпадает с паттерном доступа; считай оценки строк несущим входом планировщика; держи транзакции короткими, чтобы MVCC мог освобождать; мультиплексируй тяжёлые backends через небольшой измеренный пул; выстраивай ломающие изменения как expand-contract; и шардь последним, на высококардинальном ко-локирующем ключе, лишь когда исчерпан каждый рычаг одного узла.

Продолжить восхождение ↑Трек баз данных: спроектируй и затюнь production-схему
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.