PostgreSQL

PostgreSQL: транзакции и уровни изоляции, MVCC и WAL, масштабирование через партиционирование и шардирование, покрывающие индексы и полнотекстовый поиск с весами.

Зачем для UCP. PostgreSQL — основная БД для UCP-сервисов. ACID, изоляция, шардинг — must-know для senior'а на любом уровне зрелости. Входит в программу подготовки.

Статьи про устройство и эксплуатацию PostgreSQL. Объяснения с примерами кода на сквозной паре таблиц (category + product), чтобы было легко переключаться между статьями.

Статьи раздела

  1. ACID и уровни изоляции транзакций — что значат четыре буквы, как PostgreSQL их реализует (MVCC, WAL, snapshots, SSI), четыре уровня изоляции с примерами феноменов (dirty / non-repeatable / phantom read, write skew).
  2. Размер БД, партиционирование и шардирование — как считать размер базы и таблиц, когда применять партиционирование, когда — шардирование, как выбирать partition key и shard key.
  3. Covering Index (INCLUDE) — INCLUDE vs обычное расширение ключа, index-only scan, нюанс с visibility map, UNIQUE … INCLUDE для возврата «лишних» полей.
  4. FTS: веса и ранжирование — setweight и четыре уровня A/B/C/D, generated column с tsvector + GIN, ts_rank vs ts_rank_cd, типовые ошибки с языком словаря.

Связанное