# PostgreSQL 18 изнутри

> Внутреннее устройство PostgreSQL 18: изоляция и многоверсионность, буферный кеш, журнал, блокировки, выполнение запросов и типы индексов.

---

Индекс LLMS: [llms.txt](/ru/llms.txt)

---

![Обложка книги «PostgreSQL 18 изнутри»](/images/internal/ru/cover.webp)
{width=252 height=360}

**Егор Рогов**  
Русское издание · PostgreSQL 18 · Москва, 2026

[Начать чтение](/ru/about-this-book/) · [Печатать всю книгу](/ru/_print/) · [Исходный PDF](/downloads/postgresql_internals-18.pdf)

## Содержание {#contents}

- [Титульный лист и выходные сведения](/ru/publication/)
- [О книге](/ru/about-this-book/)
  - [Для кого эта книга](/ru/about-this-book/#internal-ru-p18-261)
  - [Чего нет в книге](/ru/about-this-book/#internal-ru-p18-522)
  - [Что в книге есть](/ru/about-this-book/#internal-ru-p19-350)
  - [Обозначения](/ru/about-this-book/#internal-ru-p20-390)
  - [Благодарности](/ru/about-this-book/#internal-ru-p22-360)
- [1 Введение](/ru/01-introduction/)
  - [1.1. Организация данных](/ru/01-introduction/#internal-ru-section-1-1)
    - [Базы данных](/ru/01-introduction/#internal-ru-subsection-star-10)
    - [Системный каталог](/ru/01-introduction/#internal-ru-subsection-star-13)
    - [Схемы](/ru/01-introduction/#internal-ru-subsection-star-15)
    - [Табличные пространства](/ru/01-introduction/#internal-ru-subsection-star-17)
    - [Отношения](/ru/01-introduction/#internal-ru-subsection-star-19)
    - [Слои и файлы](/ru/01-introduction/#internal-ru-subsection-star-21)
    - [Страницы](/ru/01-introduction/#internal-ru-subsection-star-23)
    - [TOAST](/ru/01-introduction/#internal-ru-subsection-star-25)
  - [1.2. Процессы и память](/ru/01-introduction/#internal-ru-section-1-2)
  - [1.3. Клиенты и клиент-серверный протокол](/ru/01-introduction/#internal-ru-section-1-3)
- [Часть I. Изоляция и многоверсионность](/ru/part-i-isolation-and-mvcc/)
- [2 Изоляция](/ru/02-isolation/)
  - [2.1. Согласованность](/ru/02-isolation/#internal-ru-section-2-1)
  - [2.2. Уровни изоляции и аномалии в стандарте SQL](/ru/02-isolation/#internal-ru-section-2-2)
    - [Потерянное обновление](/ru/02-isolation/#internal-ru-subsection-star-28)
    - [Грязное чтение и Read Uncommitted](/ru/02-isolation/#internal-ru-subsection-star-30)
    - [Неповторяющееся чтение и Read Committed](/ru/02-isolation/#internal-ru-subsection-star-32)
    - [Фантомное чтение и Repeatable Read](/ru/02-isolation/#internal-ru-subsection-star-34)
    - [Отсутствие аномалий и Serializable](/ru/02-isolation/#internal-ru-subsection-star-36)
    - [Почему именно эти аномалии?](/ru/02-isolation/#internal-ru-subsection-star-38)
  - [2.3. Уровни изоляции в PostgreSQL](/ru/02-isolation/#internal-ru-section-2-3)
    - [Read Committed](/ru/02-isolation/#internal-ru-subsection-star-40)
    - [Repeatable Read](/ru/02-isolation/#internal-ru-subsection-star-52)
    - [Serializable](/ru/02-isolation/#internal-ru-subsection-star-62)
  - [2.4. Какой уровень изоляции использовать?](/ru/02-isolation/#internal-ru-section-2-4)
- [3 Страницы и версии строк](/ru/03-pages-and-tuples/)
  - [3.1. Структура страниц](/ru/03-pages-and-tuples/#internal-ru-section-3-1)
    - [Заголовок страницы](/ru/03-pages-and-tuples/#internal-ru-subsection-star-68)
    - [Специальная область](/ru/03-pages-and-tuples/#internal-ru-subsection-star-70)
    - [Версии строк](/ru/03-pages-and-tuples/#internal-ru-subsection-star-72)
    - [Указатели на версии строк](/ru/03-pages-and-tuples/#internal-ru-subsection-star-74)
    - [Свободное место](/ru/03-pages-and-tuples/#internal-ru-subsection-star-76)
  - [3.2. Структура версий строк](/ru/03-pages-and-tuples/#internal-ru-section-3-2)
  - [3.3. Выполнение операций над версиями строк](/ru/03-pages-and-tuples/#internal-ru-section-3-3)
    - [Вставка](/ru/03-pages-and-tuples/#internal-ru-subsection-star-78)
    - [Фиксация](/ru/03-pages-and-tuples/#internal-ru-subsection-star-80)
    - [Удаление](/ru/03-pages-and-tuples/#internal-ru-subsection-star-82)
    - [Отмена](/ru/03-pages-and-tuples/#internal-ru-subsection-star-84)
    - [Обновление](/ru/03-pages-and-tuples/#internal-ru-subsection-star-86)
  - [3.4. Индексы](/ru/03-pages-and-tuples/#internal-ru-section-3-4)
  - [3.5. TOAST](/ru/03-pages-and-tuples/#internal-ru-section-3-5)
  - [3.6. Виртуальные транзакции](/ru/03-pages-and-tuples/#internal-ru-section-3-6)
  - [3.7. Вложенные транзакции](/ru/03-pages-and-tuples/#internal-ru-section-3-7)
    - [Точки сохранения](/ru/03-pages-and-tuples/#internal-ru-subsection-star-88)
    - [Ошибки и атомарность операций](/ru/03-pages-and-tuples/#internal-ru-subsection-star-90)
- [4 Снимки данных](/ru/04-snapshots/)
  - [4.1. Что такое снимок данных](/ru/04-snapshots/#internal-ru-section-4-1)
  - [4.2. Видимость версий строк в снимке](/ru/04-snapshots/#internal-ru-section-4-2)
  - [4.3. Из чего состоит снимок](/ru/04-snapshots/#internal-ru-section-4-3)
  - [4.4. Видимость собственных изменений](/ru/04-snapshots/#internal-ru-section-4-4)
  - [4.5. Горизонт транзакции](/ru/04-snapshots/#internal-ru-section-4-5)
  - [4.6. Снимок данных для системного каталога](/ru/04-snapshots/#internal-ru-section-4-6)
  - [4.7. Экспорт снимка данных](/ru/04-snapshots/#internal-ru-section-4-7)
- [5 Самоочистка и hot-обновления](/ru/05-page-pruning-and-hot-updates/)
  - [5.1. Самоочистка](/ru/05-page-pruning-and-hot-updates/#internal-ru-section-5-1)
  - [5.2. Hot-обновления](/ru/05-page-pruning-and-hot-updates/#internal-ru-section-5-2)
  - [5.3. Самоочистка при hot-обновлениях](/ru/05-page-pruning-and-hot-updates/#internal-ru-section-5-3)
  - [5.4. Разрыв hot-цепочки](/ru/05-page-pruning-and-hot-updates/#internal-ru-section-5-4)
  - [5.5. Самоочистка индексов](/ru/05-page-pruning-and-hot-updates/#internal-ru-section-5-5)
- [6 Очистка и заморозка](/ru/06-vacuum-and-freezing/)
  - [6.1. Очистка](/ru/06-vacuum-and-freezing/#internal-ru-section-6-1)
  - [6.2. Еще раз о горизонте базы данных](/ru/06-vacuum-and-freezing/#internal-ru-section-6-2)
  - [6.3. Этапы выполнения очистки](/ru/06-vacuum-and-freezing/#internal-ru-section-6-3)
    - [Сканирование таблицы](/ru/06-vacuum-and-freezing/#internal-ru-subsection-star-94)
    - [Очистка индексов](/ru/06-vacuum-and-freezing/#internal-ru-subsection-star-96)
    - [Очистка таблицы](/ru/06-vacuum-and-freezing/#internal-ru-subsection-star-98)
    - [Усечение таблицы](/ru/06-vacuum-and-freezing/#internal-ru-subsection-star-100)
  - [6.4. Заморозка](/ru/06-vacuum-and-freezing/#internal-ru-section-6-4)
    - [Переполнение счетчика транзакций](/ru/06-vacuum-and-freezing/#internal-ru-subsection-star-102)
    - [Заморозка версий и правила видимости](/ru/06-vacuum-and-freezing/#internal-ru-subsection-star-104)
  - [6.5. Анализ](/ru/06-vacuum-and-freezing/#internal-ru-section-6-5)
- [7 Автоочистка](/ru/07-autovacuum/)
  - [7.1. Автоматическая очистка и анализ](/ru/07-autovacuum/#internal-ru-section-7-1)
    - [Устройство автоочистки](/ru/07-autovacuum/#internal-ru-subsection-star-106)
    - [Какие таблицы требуют очистки](/ru/07-autovacuum/#internal-ru-subsection-star-108)
    - [Какие таблицы требуют анализа](/ru/07-autovacuum/#internal-ru-subsection-star-114)
    - [Автоочистка в действии](/ru/07-autovacuum/#internal-ru-subsection-star-116)
  - [7.2. Заморозка](/ru/07-autovacuum/#internal-ru-section-7-2)
  - [7.3. Управление заморозкой](/ru/07-autovacuum/#internal-ru-section-7-3)
    - [Минимальный возраст для заморозки](/ru/07-autovacuum/#internal-ru-subsection-star-118)
    - [Возраст для агрессивной заморозки](/ru/07-autovacuum/#internal-ru-subsection-star-120)
    - [Возраст для аварийного срабатывания автоочистки](/ru/07-autovacuum/#internal-ru-subsection-star-122)
    - [Возраст для приоритетного режима заморозки](/ru/07-autovacuum/#internal-ru-subsection-star-124)
  - [7.4. Нетерпеливое сканирование](/ru/07-autovacuum/#internal-ru-section-7-4)
  - [7.5. Заморозка при загрузке](/ru/07-autovacuum/#internal-ru-section-7-5)
  - [7.6. Регулирование нагрузки и мониторинг](/ru/07-autovacuum/#internal-ru-section-7-6)
    - [Ручная очистка](/ru/07-autovacuum/#internal-ru-subsection-star-126)
    - [Автоочистка](/ru/07-autovacuum/#internal-ru-subsection-star-128)
- [8 Перестроение таблиц и индексов](/ru/08-rebuilding-tables-and-indexes/)
  - [8.1. Полная очистка](/ru/08-rebuilding-tables-and-indexes/#internal-ru-section-8-1)
    - [Необходимость](/ru/08-rebuilding-tables-and-indexes/#internal-ru-subsection-star-130)
    - [Оценка плотности информации](/ru/08-rebuilding-tables-and-indexes/#internal-ru-subsection-star-132)
    - [Заморозка](/ru/08-rebuilding-tables-and-indexes/#internal-ru-subsection-star-134)
  - [8.2. Другие способы перестроения](/ru/08-rebuilding-tables-and-indexes/#internal-ru-section-8-2)
    - [Аналоги полной очистки](/ru/08-rebuilding-tables-and-indexes/#internal-ru-subsection-star-136)
    - [Перестроение без долгих блокировок](/ru/08-rebuilding-tables-and-indexes/#internal-ru-subsection-star-138)
  - [8.3. Профилактика](/ru/08-rebuilding-tables-and-indexes/#internal-ru-section-8-3)
    - [Читающие запросы](/ru/08-rebuilding-tables-and-indexes/#internal-ru-subsection-star-140)
    - [Обновление данных](/ru/08-rebuilding-tables-and-indexes/#internal-ru-subsection-star-142)
- [Часть II. Буферный кеш и журнал](/ru/part-ii-buffer-cache-and-wal/)
- [9 Буферный кеш](/ru/09-buffer-cache/)
  - [9.1. Ввод-вывод и кеширование](/ru/09-buffer-cache/#internal-ru-section-9-1)
    - [Общие соображения](/ru/09-buffer-cache/#internal-ru-subsection-star-144)
    - [Текущее положение дел](/ru/09-buffer-cache/#internal-ru-subsection-star-146)
  - [9.2. Устройство буферного кеша](/ru/09-buffer-cache/#internal-ru-section-9-2)
  - [9.3. Попадание в кеш](/ru/09-buffer-cache/#internal-ru-section-9-3)
  - [9.4. Промах кеша](/ru/09-buffer-cache/#internal-ru-section-9-4)
    - [Поиск буфера и вытеснение](/ru/09-buffer-cache/#internal-ru-subsection-star-150)
  - [9.5. Массовое вытеснение](/ru/09-buffer-cache/#internal-ru-section-9-5)
  - [9.6. Настройка размера](/ru/09-buffer-cache/#internal-ru-section-9-6)
  - [9.7. Прогрев кеша](/ru/09-buffer-cache/#internal-ru-section-9-7)
  - [9.8. Локальный кеш](/ru/09-buffer-cache/#internal-ru-section-9-8)
- [10 Журнал предзаписи](/ru/10-write-ahead-log/)
  - [10.1. Журналирование](/ru/10-write-ahead-log/#internal-ru-section-10-1)
  - [10.2. Устройство журнала](/ru/10-write-ahead-log/#internal-ru-section-10-2)
    - [Логическая структура](/ru/10-write-ahead-log/#internal-ru-subsection-star-153)
    - [Физическая структура](/ru/10-write-ahead-log/#internal-ru-subsection-star-155)
  - [10.3. Контрольная точка](/ru/10-write-ahead-log/#internal-ru-section-10-3)
  - [10.4. Восстановление](/ru/10-write-ahead-log/#internal-ru-section-10-4)
  - [10.5. Фоновая запись](/ru/10-write-ahead-log/#internal-ru-section-10-5)
  - [10.6. Настройка](/ru/10-write-ahead-log/#internal-ru-section-10-6)
    - [Настройка контрольной точки](/ru/10-write-ahead-log/#internal-ru-subsection-star-157)
    - [Настройка фоновой записи](/ru/10-write-ahead-log/#internal-ru-subsection-star-159)
    - [Мониторинг](/ru/10-write-ahead-log/#internal-ru-subsection-star-161)
- [11 Режимы журнала](/ru/11-wal-modes/)
  - [11.1. Производительность](/ru/11-wal-modes/#internal-ru-section-11-1)
  - [11.2. Надежность](/ru/11-wal-modes/#internal-ru-section-11-2)
    - [Кеширование](/ru/11-wal-modes/#internal-ru-subsection-star-163)
    - [Повреждение данных](/ru/11-wal-modes/#internal-ru-subsection-star-165)
    - [Неатомарность записи](/ru/11-wal-modes/#internal-ru-subsection-star-167)
  - [11.3. Уровни журнала](/ru/11-wal-modes/#internal-ru-section-11-3)
    - [Minimal](/ru/11-wal-modes/#internal-ru-subsection-star-169)
    - [Replica](/ru/11-wal-modes/#internal-ru-subsection-star-171)
    - [Logical](/ru/11-wal-modes/#internal-ru-subsection-star-173)
- [Часть III. Блокировки](/ru/part-iii-locks/)
- [12 Блокировки отношений](/ru/12-relation-level-locks/)
  - [12.1. Общие сведения о блокировках](/ru/12-relation-level-locks/#internal-ru-section-12-1)
  - [12.2. Тяжелые блокировки](/ru/12-relation-level-locks/#internal-ru-section-12-2)
  - [12.3. Блокировки номеров транзакций](/ru/12-relation-level-locks/#internal-ru-section-12-3)
  - [12.4. Блокировки отношений](/ru/12-relation-level-locks/#internal-ru-section-12-4)
  - [12.5. Очередь ожидания](/ru/12-relation-level-locks/#internal-ru-section-12-5)
- [13 Блокировки строк](/ru/13-row-level-locks/)
  - [13.1. Устройство](/ru/13-row-level-locks/#internal-ru-section-13-1)
  - [13.2. Режимы блокировки строки](/ru/13-row-level-locks/#internal-ru-section-13-2)
    - [Исключительные режимы](/ru/13-row-level-locks/#internal-ru-subsection-star-175)
    - [Разделяемые режимы](/ru/13-row-level-locks/#internal-ru-subsection-star-177)
  - [13.3. Мультитранзакции](/ru/13-row-level-locks/#internal-ru-section-13-3)
  - [13.4. Очередь ожидания](/ru/13-row-level-locks/#internal-ru-section-13-4)
    - [Исключительные режимы](/ru/13-row-level-locks/#internal-ru-subsection-star-179)
    - [Разделяемые режимы](/ru/13-row-level-locks/#internal-ru-subsection-star-181)
  - [13.5. Блокировка без ожидания](/ru/13-row-level-locks/#internal-ru-section-13-5)
  - [13.6. Взаимоблокировки](/ru/13-row-level-locks/#internal-ru-section-13-6)
    - [Взаимоблокировка при обновлении строк](/ru/13-row-level-locks/#internal-ru-subsection-star-183)
    - [Взаимоблокировка двух команд UPDATE](/ru/13-row-level-locks/#internal-ru-subsection-star-185)
- [14 Блокировки разных объектов](/ru/14-miscellaneous-locks/)
  - [14.1. Блокировки неотношений](/ru/14-miscellaneous-locks/#internal-ru-section-14-1)
  - [14.2. Блокировки расширения отношения](/ru/14-miscellaneous-locks/#internal-ru-section-14-2)
  - [14.3. Блокировки страниц](/ru/14-miscellaneous-locks/#internal-ru-section-14-3)
  - [14.4. Рекомендательные блокировки](/ru/14-miscellaneous-locks/#internal-ru-section-14-4)
  - [14.5. Предикатные блокировки](/ru/14-miscellaneous-locks/#internal-ru-section-14-5)
- [15 Блокировки в памяти](/ru/15-locks-on-memory-structures/)
  - [15.1. Спин-блокировки](/ru/15-locks-on-memory-structures/#internal-ru-section-15-1)
  - [15.2. Легкие блокировки](/ru/15-locks-on-memory-structures/#internal-ru-section-15-2)
  - [15.3. Примеры](/ru/15-locks-on-memory-structures/#internal-ru-section-15-3)
    - [Буферный кеш](/ru/15-locks-on-memory-structures/#internal-ru-subsection-star-187)
    - [Буферы журнала предзаписи](/ru/15-locks-on-memory-structures/#internal-ru-subsection-star-189)
    - [Кеш SLRU](/ru/15-locks-on-memory-structures/#internal-ru-subsection-star-191)
  - [15.4. Мониторинг ожиданий](/ru/15-locks-on-memory-structures/#internal-ru-section-15-4)
  - [15.5. Семплирование](/ru/15-locks-on-memory-structures/#internal-ru-section-15-5)
- [Часть IV. Выполнение запросов](/ru/part-iv-query-execution/)
- [16 Этапы выполнения запросов](/ru/16-query-execution-stages/)
  - [16.1. Демонстрационная база данных](/ru/16-query-execution-stages/#internal-ru-section-16-1)
  - [16.2. Простой протокол запросов](/ru/16-query-execution-stages/#internal-ru-section-16-2)
    - [Разбор](/ru/16-query-execution-stages/#internal-ru-subsection-star-194)
    - [Трансформация](/ru/16-query-execution-stages/#internal-ru-subsection-star-200)
    - [Планирование](/ru/16-query-execution-stages/#internal-ru-subsection-star-202)
    - [Исполнение](/ru/16-query-execution-stages/#internal-ru-subsection-star-217)
  - [16.3. Расширенный протокол запросов](/ru/16-query-execution-stages/#internal-ru-section-16-3)
    - [Подготовка](/ru/16-query-execution-stages/#internal-ru-subsection-star-220)
    - [Привязка параметров](/ru/16-query-execution-stages/#internal-ru-subsection-star-222)
    - [Планирование и исполнение](/ru/16-query-execution-stages/#internal-ru-subsection-star-224)
    - [Получение результатов](/ru/16-query-execution-stages/#internal-ru-subsection-star-226)
- [17 Статистика](/ru/17-statistics/)
  - [17.1. Базовая статистика](/ru/17-statistics/#internal-ru-section-17-1)
  - [17.2. Неопределенные значения](/ru/17-statistics/#internal-ru-section-17-2)
  - [17.3. Уникальные значения](/ru/17-statistics/#internal-ru-section-17-3)
  - [17.4. Наиболее частые значения](/ru/17-statistics/#internal-ru-section-17-4)
  - [17.5. Гистограмма](/ru/17-statistics/#internal-ru-section-17-5)
  - [17.6. Статистика для нескалярных типов данных](/ru/17-statistics/#internal-ru-section-17-6)
  - [17.7. Средний размер поля](/ru/17-statistics/#internal-ru-section-17-7)
  - [17.8. Корреляция](/ru/17-statistics/#internal-ru-section-17-8)
  - [17.9. Статистика по выражению](/ru/17-statistics/#internal-ru-section-17-9)
    - [Расширенная статистика по выражению](/ru/17-statistics/#internal-ru-subsection-star-230)
    - [Статистика для индекса по выражению](/ru/17-statistics/#internal-ru-subsection-star-232)
  - [17.10. Многовариантная статистика](/ru/17-statistics/#internal-ru-section-17-10)
    - [Функциональные зависимости между столбцами](/ru/17-statistics/#internal-ru-subsection-star-234)
    - [Многовариантное число различных значений](/ru/17-statistics/#internal-ru-subsection-star-236)
    - [Многовариантные списки частых значений](/ru/17-statistics/#internal-ru-subsection-star-238)
- [18 Табличные методы доступа](/ru/18-table-access-methods/)
  - [18.1. Подключаемые движки хранения](/ru/18-table-access-methods/#internal-ru-section-18-1)
  - [18.2. Последовательное сканирование](/ru/18-table-access-methods/#internal-ru-section-18-2)
    - [Оценка стоимости](/ru/18-table-access-methods/#internal-ru-subsection-star-240)
  - [18.3. Параллельные планы выполнения](/ru/18-table-access-methods/#internal-ru-section-18-3)
  - [18.4. Параллельное последовательное сканирование](/ru/18-table-access-methods/#internal-ru-section-18-4)
    - [Оценка стоимости](/ru/18-table-access-methods/#internal-ru-subsection-star-242)
  - [18.5. Ограничения параллельного выполнения](/ru/18-table-access-methods/#internal-ru-section-18-5)
    - [Количество рабочих процессов](/ru/18-table-access-methods/#internal-ru-subsection-star-244)
    - [Нераспараллеливаемые запросы](/ru/18-table-access-methods/#internal-ru-subsection-star-246)
    - [Ограниченно распараллеливаемые запросы](/ru/18-table-access-methods/#internal-ru-subsection-star-248)
- [19 Индексные методы доступа](/ru/19-index-access-methods/)
  - [19.1. Индексы и расширяемость](/ru/19-index-access-methods/#internal-ru-section-19-1)
  - [19.2. Классы и семейства операторов](/ru/19-index-access-methods/#internal-ru-section-19-2)
    - [Класс операторов](/ru/19-index-access-methods/#internal-ru-subsection-star-258)
    - [Семейство операторов](/ru/19-index-access-methods/#internal-ru-subsection-star-260)
  - [19.3. Интерфейс механизма индексирования](/ru/19-index-access-methods/#internal-ru-section-19-3)
    - [Свойства метода доступа](/ru/19-index-access-methods/#internal-ru-subsection-star-262)
    - [Свойства индекса](/ru/19-index-access-methods/#internal-ru-subsection-star-264)
    - [Свойства столбцов](/ru/19-index-access-methods/#internal-ru-subsection-star-266)
- [20 Индексное сканирование](/ru/20-index-scans/)
  - [20.1. Простое индексное сканирование](/ru/20-index-scans/#internal-ru-section-20-1)
    - [Оценка стоимости](/ru/20-index-scans/#internal-ru-subsection-star-268)
    - [Хороший случай: высокая корреляция](/ru/20-index-scans/#internal-ru-subsection-star-270)
    - [Плохой случай: низкая корреляция](/ru/20-index-scans/#internal-ru-subsection-star-272)
  - [20.2. Сканирование только индекса](/ru/20-index-scans/#internal-ru-section-20-2)
    - [Include-индексы](/ru/20-index-scans/#internal-ru-subsection-star-274)
  - [20.3. Сканирование по битовой карте](/ru/20-index-scans/#internal-ru-section-20-3)
    - [Точность карты](/ru/20-index-scans/#internal-ru-subsection-star-276)
    - [Действия с битовыми картами](/ru/20-index-scans/#internal-ru-subsection-star-278)
    - [Оценка стоимости](/ru/20-index-scans/#internal-ru-subsection-star-280)
  - [20.4. Параллельные версии индексного сканирования](/ru/20-index-scans/#internal-ru-section-20-4)
  - [20.5. Сравнение методов доступа](/ru/20-index-scans/#internal-ru-section-20-5)
- [21 Вложенный цикл](/ru/21-nested-loop/)
  - [21.1. Виды и способы соединений](/ru/21-nested-loop/#internal-ru-section-21-1)
  - [21.2. Соединение вложенным циклом](/ru/21-nested-loop/#internal-ru-section-21-2)
    - [Декартово произведение](/ru/21-nested-loop/#internal-ru-subsection-star-283)
    - [Параметризованное соединение](/ru/21-nested-loop/#internal-ru-subsection-star-289)
    - [Кеширование (мемоизация) строк](/ru/21-nested-loop/#internal-ru-subsection-star-295)
    - [Внешние соединения](/ru/21-nested-loop/#internal-ru-subsection-star-299)
    - [Анти- и полусоединения](/ru/21-nested-loop/#internal-ru-subsection-star-301)
    - [Неэквисоединения](/ru/21-nested-loop/#internal-ru-subsection-star-307)
    - [Параллельный режим](/ru/21-nested-loop/#internal-ru-subsection-star-309)
- [22 Хеширование](/ru/22-hashing/)
  - [22.1. Соединение хешированием](/ru/22-hashing/#internal-ru-section-22-1)
    - [Однопроходное соединение хешированием](/ru/22-hashing/#internal-ru-subsection-star-311)
    - [Двухпроходное соединение хешированием](/ru/22-hashing/#internal-ru-subsection-star-315)
    - [Динамические корректировки плана](/ru/22-hashing/#internal-ru-subsection-star-317)
    - [Соединение хешированием в параллельных планах](/ru/22-hashing/#internal-ru-subsection-star-321)
    - [Параллельное однопроходное хеш-соединение](/ru/22-hashing/#internal-ru-subsection-star-323)
    - [Параллельное двухпроходное хеш-соединение](/ru/22-hashing/#internal-ru-subsection-star-325)
    - [Модификации](/ru/22-hashing/#internal-ru-subsection-star-327)
  - [22.2. Группировка и уникальные значения](/ru/22-hashing/#internal-ru-section-22-2)
- [23 Сортировка и слияние](/ru/23-sorting-and-merging/)
  - [23.1. Соединение слиянием](/ru/23-sorting-and-merging/#internal-ru-section-23-1)
    - [Слияние отсортированных наборов](/ru/23-sorting-and-merging/#internal-ru-subsection-star-329)
    - [Параллельный режим](/ru/23-sorting-and-merging/#internal-ru-subsection-star-333)
    - [Модификации](/ru/23-sorting-and-merging/#internal-ru-subsection-star-335)
  - [23.2. Сортировка](/ru/23-sorting-and-merging/#internal-ru-section-23-2)
    - [Быстрая сортировка](/ru/23-sorting-and-merging/#internal-ru-subsection-star-337)
    - [Частичная пирамидальная сортировка](/ru/23-sorting-and-merging/#internal-ru-subsection-star-341)
    - [Внешняя сортировка](/ru/23-sorting-and-merging/#internal-ru-subsection-star-345)
    - [Инкрементальная сортировка](/ru/23-sorting-and-merging/#internal-ru-subsection-star-349)
    - [Параллельный режим](/ru/23-sorting-and-merging/#internal-ru-subsection-star-353)
  - [23.3. Группировка и уникальные значения](/ru/23-sorting-and-merging/#internal-ru-section-23-3)
  - [23.4. Сравнение способов соединения](/ru/23-sorting-and-merging/#internal-ru-section-23-4)
- [Часть V. Типы индексов](/ru/part-v-types-of-indexes/)
- [24 Хеш-индекс](/ru/24-hash/)
  - [24.1. Общий принцип](/ru/24-hash/#internal-ru-section-24-1)
  - [24.2. Страничная организация](/ru/24-hash/#internal-ru-section-24-2)
  - [24.3. Класс операторов](/ru/24-hash/#internal-ru-section-24-3)
  - [24.4. Свойства](/ru/24-hash/#internal-ru-section-24-4)
    - [Свойства уровня метода доступа](/ru/24-hash/#internal-ru-subsection-star-357)
    - [Свойства уровня индекса](/ru/24-hash/#internal-ru-subsection-star-359)
    - [Свойства уровня столбца](/ru/24-hash/#internal-ru-subsection-star-361)
- [25 B-дерево](/ru/25-b-tree/)
  - [25.1. Общий принцип](/ru/25-b-tree/#internal-ru-section-25-1)
  - [25.2. Поиск и вставка](/ru/25-b-tree/#internal-ru-section-25-2)
    - [Поиск по равенству](/ru/25-b-tree/#internal-ru-subsection-star-363)
    - [Поиск по неравенству](/ru/25-b-tree/#internal-ru-subsection-star-365)
    - [Поиск по диапазону](/ru/25-b-tree/#internal-ru-subsection-star-367)
    - [Вставка](/ru/25-b-tree/#internal-ru-subsection-star-369)
  - [25.3. Страничная организация](/ru/25-b-tree/#internal-ru-section-25-3)
    - [Компактное хранение дубликатов](/ru/25-b-tree/#internal-ru-subsection-star-371)
    - [Компактное хранение внутренних индексных записей](/ru/25-b-tree/#internal-ru-subsection-star-373)
  - [25.4. Сортировка и составные индексы](/ru/25-b-tree/#internal-ru-section-25-4)
    - [Порядок столбцов](/ru/25-b-tree/#internal-ru-subsection-star-375)
    - [Оптимизация пропуска](/ru/25-b-tree/#internal-ru-subsection-star-377)
    - [Направление сортировки](/ru/25-b-tree/#internal-ru-subsection-star-379)
  - [25.5. Класс операторов](/ru/25-b-tree/#internal-ru-section-25-5)
    - [Семантика сравнения](/ru/25-b-tree/#internal-ru-subsection-star-381)
  - [25.6. Свойства](/ru/25-b-tree/#internal-ru-section-25-6)
    - [Свойства уровня метода доступа](/ru/25-b-tree/#internal-ru-subsection-star-383)
    - [Свойства уровня индекса](/ru/25-b-tree/#internal-ru-subsection-star-385)
    - [Свойства уровня столбца](/ru/25-b-tree/#internal-ru-subsection-star-387)
- [26 Индекс GiST](/ru/26-gist/)
  - [26.1. Общий принцип](/ru/26-gist/#internal-ru-section-26-1)
  - [26.2. R-дерево для точек](/ru/26-gist/#internal-ru-section-26-2)
    - [Страничная организация](/ru/26-gist/#internal-ru-subsection-star-389)
    - [Класс операторов](/ru/26-gist/#internal-ru-subsection-star-391)
    - [Поиск вхождения в область](/ru/26-gist/#internal-ru-subsection-star-393)
    - [Поиск ближайших соседей](/ru/26-gist/#internal-ru-subsection-star-395)
    - [Вставка](/ru/26-gist/#internal-ru-subsection-star-397)
    - [Ограничение исключения](/ru/26-gist/#internal-ru-subsection-star-399)
    - [Свойства](/ru/26-gist/#internal-ru-subsection-star-401)
  - [26.3. RD-дерево для полнотекстового поиска](/ru/26-gist/#internal-ru-section-26-3)
    - [Про полнотекстовый поиск](/ru/26-gist/#internal-ru-subsection-star-409)
    - [Индексация tsvector](/ru/26-gist/#internal-ru-subsection-star-411)
    - [Свойства](/ru/26-gist/#internal-ru-subsection-star-413)
  - [26.4. Другие типы данных](/ru/26-gist/#internal-ru-section-26-4)
- [27 Индекс SP-GiST](/ru/27-sp-gist/)
  - [27.1. Общий принцип](/ru/27-sp-gist/#internal-ru-section-27-1)
  - [27.2. Дерево квадрантов для точек](/ru/27-sp-gist/#internal-ru-section-27-2)
    - [Класс операторов](/ru/27-sp-gist/#internal-ru-subsection-star-415)
    - [Страничная организация](/ru/27-sp-gist/#internal-ru-subsection-star-417)
    - [Поиск](/ru/27-sp-gist/#internal-ru-subsection-star-419)
    - [Вставка](/ru/27-sp-gist/#internal-ru-subsection-star-421)
    - [Свойства](/ru/27-sp-gist/#internal-ru-subsection-star-423)
  - [27.3. K-мерные деревья для точек](/ru/27-sp-gist/#internal-ru-section-27-3)
  - [27.4. Префиксное дерево для строк](/ru/27-sp-gist/#internal-ru-section-27-4)
    - [Класс операторов](/ru/27-sp-gist/#internal-ru-subsection-star-431)
    - [Поиск](/ru/27-sp-gist/#internal-ru-subsection-star-433)
    - [Вставка](/ru/27-sp-gist/#internal-ru-subsection-star-435)
    - [Свойства](/ru/27-sp-gist/#internal-ru-subsection-star-437)
  - [27.5. Другие типы данных](/ru/27-sp-gist/#internal-ru-section-27-5)
- [28 Индекс GIN](/ru/28-gin/)
  - [28.1. Общий принцип](/ru/28-gin/#internal-ru-section-28-1)
  - [28.2. Индекс для полнотекстового поиска](/ru/28-gin/#internal-ru-section-28-2)
    - [Страничная организация](/ru/28-gin/#internal-ru-subsection-star-439)
    - [Класс операторов](/ru/28-gin/#internal-ru-subsection-star-441)
    - [Поиск](/ru/28-gin/#internal-ru-subsection-star-443)
    - [Частые и редкие лексемы](/ru/28-gin/#internal-ru-subsection-star-445)
    - [Вставка](/ru/28-gin/#internal-ru-subsection-star-447)
    - [Ограничение выборки](/ru/28-gin/#internal-ru-subsection-star-449)
    - [Свойства](/ru/28-gin/#internal-ru-subsection-star-451)
    - [Ограничения GIN и RUM-индекс](/ru/28-gin/#internal-ru-subsection-star-459)
  - [28.3. Индекс для триграмм](/ru/28-gin/#internal-ru-section-28-3)
  - [28.4. Индекс для массивов](/ru/28-gin/#internal-ru-section-28-4)
  - [28.5. Индекс для JSON](/ru/28-gin/#internal-ru-section-28-5)
    - [Класс операторов jsonb_ops](/ru/28-gin/#internal-ru-subsection-star-461)
    - [Класс операторов jsonb_path_ops](/ru/28-gin/#internal-ru-subsection-star-463)
  - [28.6. Другие типы данных](/ru/28-gin/#internal-ru-section-28-6)
- [29 Индекс BRIN](/ru/29-brin/)
  - [29.1. Общий принцип](/ru/29-brin/#internal-ru-section-29-1)
  - [29.2. Пример](/ru/29-brin/#internal-ru-section-29-2)
  - [29.3. Страничная организация](/ru/29-brin/#internal-ru-section-29-3)
  - [29.4. Поиск](/ru/29-brin/#internal-ru-section-29-4)
  - [29.5. Обновление сводной информации](/ru/29-brin/#internal-ru-section-29-5)
    - [Вставка значений](/ru/29-brin/#internal-ru-subsection-star-465)
    - [Обобщение зоны](/ru/29-brin/#internal-ru-subsection-star-467)
  - [29.6. Диапазоны значений (minmax)](/ru/29-brin/#internal-ru-section-29-6)
    - [Выбор столбцов для индексирования](/ru/29-brin/#internal-ru-subsection-star-469)
    - [Размер зоны и эффективность поиска](/ru/29-brin/#internal-ru-subsection-star-471)
    - [Свойства](/ru/29-brin/#internal-ru-subsection-star-473)
  - [29.7. Мультидиапазоны значений (minmax-multi)](/ru/29-brin/#internal-ru-section-29-7)
  - [29.8. Охватывающие значения (inclusion)](/ru/29-brin/#internal-ru-section-29-8)
  - [29.9. Фильтры Блума (bloom)](/ru/29-brin/#internal-ru-section-29-9)
- [Заключение](/ru/conclusion/)
- [Предметный указатель](/ru/index/)
  - [A](/ru/index/#index-a)
  - [B](/ru/index/#index-b)
  - [C](/ru/index/#index-c)
  - [D](/ru/index/#index-d)
  - [E](/ru/index/#index-e)
  - [F](/ru/index/#index-f)
  - [G](/ru/index/#index-g)
  - [H](/ru/index/#index-h)
  - [I](/ru/index/#index-i)
  - [J](/ru/index/#index-j)
  - [K](/ru/index/#index-k)
  - [L](/ru/index/#index-l)
  - [M](/ru/index/#index-m)
  - [N](/ru/index/#index-n)
  - [O](/ru/index/#index-o)
  - [P](/ru/index/#index-p)
  - [Q](/ru/index/#index-q)
  - [R](/ru/index/#index-r)
  - [S](/ru/index/#index-s)
  - [T](/ru/index/#index-t)
  - [U](/ru/index/#index-u)
  - [V](/ru/index/#index-v)
  - [W](/ru/index/#index-w)
  - [X](/ru/index/#index-x)
  - [А](/ru/index/#index-а)
  - [Б](/ru/index/#index-б)
  - [В](/ru/index/#index-в)
  - [Г](/ru/index/#index-г)
  - [Д](/ru/index/#index-д)
  - [Ж](/ru/index/#index-ж)
  - [З](/ru/index/#index-з)
  - [И](/ru/index/#index-и)
  - [К](/ru/index/#index-к)
  - [М](/ru/index/#index-м)
  - [Н](/ru/index/#index-н)
  - [О](/ru/index/#index-о)
  - [П](/ru/index/#index-п)
  - [Р](/ru/index/#index-р)
  - [С](/ru/index/#index-с)
  - [Т](/ru/index/#index-т)
  - [У](/ru/index/#index-у)
  - [Ф](/ru/index/#index-ф)
  - [Х](/ru/index/#index-х)
  - [Э](/ru/index/#index-э)
- [Издательские сведения](/ru/colophon/)
  - [PostgreSQL 18 изнутри](/ru/colophon/#internal-ru-p683-251)

## Иллюстрации {#figures}

- [Рисунок publication.1](/ru/publication/#internal-ru-fig-publication-1) — Логотип издательства «ДМК Пресс»
- [Рисунок 1.1](/ru/01-introduction/#internal-ru-fig-1-1) — Базы данных
- [Рисунок 1.2](/ru/01-introduction/#internal-ru-fig-1-2) — Табличные пространства
- [Рисунок 1.3](/ru/01-introduction/#internal-ru-fig-1-3) — Слои и файлы
- [Рисунок 1.4](/ru/01-introduction/#internal-ru-fig-1-4) — Процессы и память
- [Рисунок 3.1](/ru/03-pages-and-tuples/#internal-ru-fig-3-1) — Заголовок страницы
- [Рисунок 4.1](/ru/04-snapshots/#internal-ru-fig-4-1) — Что такое снимок данных
- [Рисунок 4.2](/ru/04-snapshots/#internal-ru-fig-4-2) — Видимость версий строк в снимке
- [Рисунок 4.3](/ru/04-snapshots/#internal-ru-fig-4-3) — Из чего состоит снимок
- [Рисунок 4.4](/ru/04-snapshots/#internal-ru-fig-4-4) — Из чего состоит снимок
- [Рисунок 4.5](/ru/04-snapshots/#internal-ru-fig-4-5) — Горизонт транзакции
- [Рисунок 6.1](/ru/06-vacuum-and-freezing/#internal-ru-fig-6-1) — Переполнение счетчика транзакций
- [Рисунок 6.2](/ru/06-vacuum-and-freezing/#internal-ru-fig-6-2) — Заморозка версий и правила видимости
- [Рисунок 7.1](/ru/07-autovacuum/#internal-ru-fig-7-1) — Возраст для аварийного срабатывания автоочистки
- [Рисунок 9.1](/ru/09-buffer-cache/#internal-ru-fig-9-1) — Устройство буферного кеша
- [Рисунок 9.2](/ru/09-buffer-cache/#internal-ru-fig-9-2) — Попадание в кеш
- [Рисунок 9.3](/ru/09-buffer-cache/#internal-ru-fig-9-3) — Поиск буфера и вытеснение
- [Рисунок 10.1](/ru/10-write-ahead-log/#internal-ru-fig-10-1) — Контрольная точка
- [Рисунок 10.2](/ru/10-write-ahead-log/#internal-ru-fig-10-2) — Контрольная точка
- [Рисунок 10.3](/ru/10-write-ahead-log/#internal-ru-fig-10-3) — Настройка контрольной точки
- [Рисунок 12.1](/ru/12-relation-level-locks/#internal-ru-fig-12-1) — Очередь ожидания
- [Рисунок 13.1](/ru/13-row-level-locks/#internal-ru-fig-13-1) — Исключительные режимы
- [Рисунок 13.2](/ru/13-row-level-locks/#internal-ru-fig-13-2) — Исключительные режимы
- [Рисунок 13.3](/ru/13-row-level-locks/#internal-ru-fig-13-3) — Исключительные режимы
- [Рисунок 13.4](/ru/13-row-level-locks/#internal-ru-fig-13-4) — Разделяемые режимы
- [Рисунок 13.5](/ru/13-row-level-locks/#internal-ru-fig-13-5) — Разделяемые режимы
- [Рисунок 13.6](/ru/13-row-level-locks/#internal-ru-fig-13-6) — Взаимоблокировки
- [Рисунок 15.1](/ru/15-locks-on-memory-structures/#internal-ru-fig-15-1) — Буферный кеш
- [Рисунок 15.2](/ru/15-locks-on-memory-structures/#internal-ru-fig-15-2) — Буферы журнала предзаписи
- [Рисунок 15.3](/ru/15-locks-on-memory-structures/#internal-ru-fig-15-3) — Кеш SLRU
- [Рисунок 16.1](/ru/16-query-execution-stages/#internal-ru-fig-16-1) — Демонстрационная база данных
- [Рисунок 16.2](/ru/16-query-execution-stages/#internal-ru-fig-16-2) — Разбор
- [Рисунок 16.3](/ru/16-query-execution-stages/#internal-ru-fig-16-3) — Трансформация
- [Рисунок 16.4](/ru/16-query-execution-stages/#internal-ru-fig-16-4) — Планирование
- [Рисунок 16.5](/ru/16-query-execution-stages/#internal-ru-fig-16-5) — Планирование
- [Рисунок 16.6](/ru/16-query-execution-stages/#internal-ru-fig-16-6) — Планирование
- [Рисунок 16.7](/ru/16-query-execution-stages/#internal-ru-fig-16-7) — Планирование
- [Рисунок 16.8](/ru/16-query-execution-stages/#internal-ru-fig-16-8) — Планирование
- [Рисунок 16.9](/ru/16-query-execution-stages/#internal-ru-fig-16-9) — Планирование
- [Рисунок 16.10](/ru/16-query-execution-stages/#internal-ru-fig-16-10) — Планирование
- [Рисунок 16.11](/ru/16-query-execution-stages/#internal-ru-fig-16-11) — Исполнение
- [Рисунок 17.1](/ru/17-statistics/#internal-ru-fig-17-1) — Уникальные значения
- [Рисунок 17.2](/ru/17-statistics/#internal-ru-fig-17-2) — Наиболее частые значения
- [Рисунок 17.3](/ru/17-statistics/#internal-ru-fig-17-3) — Гистограмма
- [Рисунок 17.4](/ru/17-statistics/#internal-ru-fig-17-4) — Гистограмма
- [Рисунок 18.1](/ru/18-table-access-methods/#internal-ru-fig-18-1) — Последовательное сканирование
- [Рисунок 18.2](/ru/18-table-access-methods/#internal-ru-fig-18-2) — Параллельные планы выполнения
- [Рисунок 19.1](/ru/19-index-access-methods/#internal-ru-fig-19-1) — Индексы и расширяемость
- [Рисунок 20.1](/ru/20-index-scans/#internal-ru-fig-20-1) — Хороший случай\: высокая корреляция
- [Рисунок 20.2](/ru/20-index-scans/#internal-ru-fig-20-2) — Плохой случай\: низкая корреляция
- [Рисунок 20.3](/ru/20-index-scans/#internal-ru-fig-20-3) — Плохой случай\: низкая корреляция
- [Рисунок 20.4](/ru/20-index-scans/#internal-ru-fig-20-4) — Оценка стоимости
- [Рисунок 20.5](/ru/20-index-scans/#internal-ru-fig-20-5) — Оценка стоимости
- [Рисунок 20.6](/ru/20-index-scans/#internal-ru-fig-20-6) — Сравнение методов доступа
- [Рисунок 22.1](/ru/22-hashing/#internal-ru-fig-22-1) — Однопроходное соединение хешированием
- [Рисунок 22.2](/ru/22-hashing/#internal-ru-fig-22-2) — Однопроходное соединение хешированием
- [Рисунок 22.3](/ru/22-hashing/#internal-ru-fig-22-3) — Двухпроходное соединение хешированием
- [Рисунок 22.4](/ru/22-hashing/#internal-ru-fig-22-4) — Двухпроходное соединение хешированием
- [Рисунок 22.5](/ru/22-hashing/#internal-ru-fig-22-5) — Двухпроходное соединение хешированием
- [Рисунок 22.6](/ru/22-hashing/#internal-ru-fig-22-6) — Параллельное однопроходное хеш\-соединение
- [Рисунок 22.7](/ru/22-hashing/#internal-ru-fig-22-7) — Параллельное однопроходное хеш\-соединение
- [Рисунок 22.8](/ru/22-hashing/#internal-ru-fig-22-8) — Параллельное двухпроходное хеш\-соединение
- [Рисунок 22.9](/ru/22-hashing/#internal-ru-fig-22-9) — Параллельное двухпроходное хеш\-соединение
- [Рисунок 22.10](/ru/22-hashing/#internal-ru-fig-22-10) — Параллельное двухпроходное хеш\-соединение
- [Рисунок 22.11](/ru/22-hashing/#internal-ru-fig-22-11) — Параллельное двухпроходное хеш\-соединение
- [Рисунок 23.1](/ru/23-sorting-and-merging/#internal-ru-fig-23-1) — Внешняя сортировка
- [Рисунок 23.2](/ru/23-sorting-and-merging/#internal-ru-fig-23-2) — Внешняя сортировка
- [Рисунок 23.3](/ru/23-sorting-and-merging/#internal-ru-fig-23-3) — Внешняя сортировка
- [Рисунок 23.4](/ru/23-sorting-and-merging/#internal-ru-fig-23-4) — Внешняя сортировка
- [Рисунок 23.5](/ru/23-sorting-and-merging/#internal-ru-fig-23-5) — Внешняя сортировка
- [Рисунок 23.6](/ru/23-sorting-and-merging/#internal-ru-fig-23-6) — Сравнение способов соединения
- [Рисунок 24.1](/ru/24-hash/#internal-ru-fig-24-1) — Страничная организация
- [Рисунок 24.2](/ru/24-hash/#internal-ru-fig-24-2) — Страничная организация
- [Рисунок 24.3](/ru/24-hash/#internal-ru-fig-24-3) — Страничная организация
- [Рисунок 24.4](/ru/24-hash/#internal-ru-fig-24-4) — Страничная организация
- [Рисунок 25.1](/ru/25-b-tree/#internal-ru-fig-25-1) — Общий принцип
- [Рисунок 25.2](/ru/25-b-tree/#internal-ru-fig-25-2) — Поиск по равенству
- [Рисунок 25.3](/ru/25-b-tree/#internal-ru-fig-25-3) — Поиск по неравенству
- [Рисунок 25.4](/ru/25-b-tree/#internal-ru-fig-25-4) — Поиск по диапазону
- [Рисунок 25.5](/ru/25-b-tree/#internal-ru-fig-25-5) — Вставка
- [Рисунок 25.6](/ru/25-b-tree/#internal-ru-fig-25-6) — Страничная организация
- [Рисунок 25.7](/ru/25-b-tree/#internal-ru-fig-25-7) — Оптимизация пропуска
- [Рисунок 25.8](/ru/25-b-tree/#internal-ru-fig-25-8) — Оптимизация пропуска
- [Рисунок 25.9](/ru/25-b-tree/#internal-ru-fig-25-9) — Оптимизация пропуска
- [Рисунок 25.10](/ru/25-b-tree/#internal-ru-fig-25-10) — Оптимизация пропуска
- [Рисунок 25.11](/ru/25-b-tree/#internal-ru-fig-25-11) — Оптимизация пропуска
- [Рисунок 25.12](/ru/25-b-tree/#internal-ru-fig-25-12) — Оптимизация пропуска
- [Рисунок 26.1](/ru/26-gist/#internal-ru-fig-26-1) — R\-дерево для точек
- [Рисунок 26.2](/ru/26-gist/#internal-ru-fig-26-2) — R\-дерево для точек
- [Рисунок 26.3](/ru/26-gist/#internal-ru-fig-26-3) — R\-дерево для точек
- [Рисунок 26.4](/ru/26-gist/#internal-ru-fig-26-4) — Поиск вхождения в область
- [Рисунок 26.5](/ru/26-gist/#internal-ru-fig-26-5) — Поиск вхождения в область
- [Рисунок 26.6](/ru/26-gist/#internal-ru-fig-26-6) — Поиск вхождения в область
- [Рисунок 26.7](/ru/26-gist/#internal-ru-fig-26-7) — Поиск ближайших соседей
- [Рисунок 26.8](/ru/26-gist/#internal-ru-fig-26-8) — Поиск ближайших соседей
- [Рисунок 26.9](/ru/26-gist/#internal-ru-fig-26-9) — Поиск ближайших соседей
- [Рисунок 26.10](/ru/26-gist/#internal-ru-fig-26-10) — Поиск ближайших соседей
- [Рисунок 26.11](/ru/26-gist/#internal-ru-fig-26-11) — Вставка
- [Рисунок 26.12](/ru/26-gist/#internal-ru-fig-26-12) — Вставка
- [Рисунок 26.13](/ru/26-gist/#internal-ru-fig-26-13) — Индексация tsvector
- [Рисунок 26.14](/ru/26-gist/#internal-ru-fig-26-14) — Индексация tsvector
- [Рисунок 26.15](/ru/26-gist/#internal-ru-fig-26-15) — Индексация tsvector
- [Рисунок 26.16](/ru/26-gist/#internal-ru-fig-26-16) — Индексация tsvector
- [Рисунок 27.1](/ru/27-sp-gist/#internal-ru-fig-27-1) — Дерево квадрантов для точек
- [Рисунок 27.2](/ru/27-sp-gist/#internal-ru-fig-27-2) — Дерево квадрантов для точек
- [Рисунок 27.3](/ru/27-sp-gist/#internal-ru-fig-27-3) — Дерево квадрантов для точек
- [Рисунок 27.4](/ru/27-sp-gist/#internal-ru-fig-27-4) — Класс операторов
- [Рисунок 27.5](/ru/27-sp-gist/#internal-ru-fig-27-5) — Класс операторов
- [Рисунок 27.6](/ru/27-sp-gist/#internal-ru-fig-27-6) — Страничная организация
- [Рисунок 27.7](/ru/27-sp-gist/#internal-ru-fig-27-7) — Поиск
- [Рисунок 27.8](/ru/27-sp-gist/#internal-ru-fig-27-8) — Поиск
- [Рисунок 27.9](/ru/27-sp-gist/#internal-ru-fig-27-9) — Вставка
- [Рисунок 27.10](/ru/27-sp-gist/#internal-ru-fig-27-10) — Вставка
- [Рисунок 27.11](/ru/27-sp-gist/#internal-ru-fig-27-11) — Вставка
- [Рисунок 27.12](/ru/27-sp-gist/#internal-ru-fig-27-12) — Вставка
- [Рисунок 27.13](/ru/27-sp-gist/#internal-ru-fig-27-13) — K\-мерные деревья для точек
- [Рисунок 27.14](/ru/27-sp-gist/#internal-ru-fig-27-14) — K\-мерные деревья для точек
- [Рисунок 27.15](/ru/27-sp-gist/#internal-ru-fig-27-15) — K\-мерные деревья для точек
- [Рисунок 27.16](/ru/27-sp-gist/#internal-ru-fig-27-16) — Префиксное дерево для строк
- [Рисунок 27.17](/ru/27-sp-gist/#internal-ru-fig-27-17) — Поиск
- [Рисунок 27.18](/ru/27-sp-gist/#internal-ru-fig-27-18) — Вставка
- [Рисунок 27.19](/ru/27-sp-gist/#internal-ru-fig-27-19) — Вставка
- [Рисунок 28.1](/ru/28-gin/#internal-ru-fig-28-1) — Индекс для полнотекстового поиска
- [Рисунок 28.2](/ru/28-gin/#internal-ru-fig-28-2) — Поиск
- [Рисунок 28.3](/ru/28-gin/#internal-ru-fig-28-3) — Частые и редкие лексемы
- [Рисунок 28.4](/ru/28-gin/#internal-ru-fig-28-4) — Вставка
- [Рисунок 28.5](/ru/28-gin/#internal-ru-fig-28-5) — Класс операторов jsonb\_ops
- [Рисунок 28.6](/ru/28-gin/#internal-ru-fig-28-6) — Класс операторов jsonb\_path\_ops
- [Рисунок 29.1](/ru/29-brin/#internal-ru-fig-29-1) — Страничная организация
- [Рисунок 29.2](/ru/29-brin/#internal-ru-fig-29-2) — Вставка значений
- [Рисунок 29.3](/ru/29-brin/#internal-ru-fig-29-3) — Размер зоны и эффективность поиска
- [Рисунок 29.4](/ru/29-brin/#internal-ru-fig-29-4) — Мультидиапазоны значений \(minmax\-multi\)
- [Рисунок 29.5](/ru/29-brin/#internal-ru-fig-29-5) — Мультидиапазоны значений \(minmax\-multi\)
- [Рисунок 29.6](/ru/29-brin/#internal-ru-fig-29-6) — Фильтры Блума \(bloom\)

## Таблицы {#tables}

- [Таблица 2.1](/ru/02-isolation/#internal-ru-table-2-1) — Уровни изоляции и аномалии в стандарте SQL
- [Таблица 2.2](/ru/02-isolation/#internal-ru-table-2-2) — Уровни изоляции и аномалии в PostgreSQL
- [Таблица 12.1](/ru/12-relation-level-locks/#internal-ru-table-12-1) — Матрица конфликтов\: Shared и Exclusive
- [Таблица 12.2](/ru/12-relation-level-locks/#internal-ru-table-12-2) — Матрица конфликтов блокировок отношений
- [Таблица 13.1](/ru/13-row-level-locks/#internal-ru-table-13-1) — Матрица конфликтов блокировок строк
- [Таблица 18.1](/ru/18-table-access-methods/#internal-ru-table-18-1) — Размер таблицы и количество процессов
- [Таблица 26.1](/ru/26-gist/#internal-ru-table-26-1) — Сигнатуры лексем
- [Таблица 26.2](/ru/26-gist/#internal-ru-table-26-2) — Сигнатуры документов
- [Таблица 28.1](/ru/28-gin/#internal-ru-table-28-1) — Функция согласованности\: «стоя» или «кудряв»
- [Таблица 28.2](/ru/28-gin/#internal-ru-table-28-2) — Функция согласованности\: обязательная и дополнительная лексемы

## Об издании {#edition}

Русский оригинал книги Егора Рогова «PostgreSQL 18 изнутри», ДМК Пресс, 2026. Сохранены текст, примеры, иллюстрации, примечания и порядок глав исходного издания. Номера страниц отсылают к печатной книге; номера иллюстраций и таблиц добавлены для навигации в веб-издании.

© Текст, оформление, ООО «ППГ», 2026; © Издание, ДМК Пресс, 2026.

[Сайт книги](https://postgrespro.ru/education/books/internals) · [Выходные сведения](/ru/publication/) · [Издательские сведения](/ru/colophon/)

[English edition: PostgreSQL 14 Internals](/en/) — отдельное издание, описывающее PostgreSQL 14.

---

Страницы раздела:

- [Титульный лист и выходные сведения](/ru/publication/)
- [О книге](/ru/about-this-book/)
- [Введение](/ru/01-introduction/)
- [Часть I. Изоляция и многоверсионность](/ru/part-i-isolation-and-mvcc/)
- [Изоляция](/ru/02-isolation/)
- [Страницы и версии строк](/ru/03-pages-and-tuples/)
- [Снимки данных](/ru/04-snapshots/)
- [Самоочистка и hot-обновления](/ru/05-page-pruning-and-hot-updates/)
- [Очистка и заморозка](/ru/06-vacuum-and-freezing/)
- [Автоочистка](/ru/07-autovacuum/)
- [Перестроение таблиц и индексов](/ru/08-rebuilding-tables-and-indexes/)
- [Часть II. Буферный кеш и журнал](/ru/part-ii-buffer-cache-and-wal/)
- [Буферный кеш](/ru/09-buffer-cache/)
- [Журнал предзаписи](/ru/10-write-ahead-log/)
- [Режимы журнала](/ru/11-wal-modes/)
- [Часть III. Блокировки](/ru/part-iii-locks/)
- [Блокировки отношений](/ru/12-relation-level-locks/)
- [Блокировки строк](/ru/13-row-level-locks/)
- [Блокировки разных объектов](/ru/14-miscellaneous-locks/)
- [Блокировки в памяти](/ru/15-locks-on-memory-structures/)
- [Часть IV. Выполнение запросов](/ru/part-iv-query-execution/)
- [Этапы выполнения запросов](/ru/16-query-execution-stages/)
- [Статистика](/ru/17-statistics/)
- [Табличные методы доступа](/ru/18-table-access-methods/)
- [Индексные методы доступа](/ru/19-index-access-methods/)
- [Индексное сканирование](/ru/20-index-scans/)
- [Вложенный цикл](/ru/21-nested-loop/)
- [Хеширование](/ru/22-hashing/)
- [Сортировка и слияние](/ru/23-sorting-and-merging/)
- [Часть V. Типы индексов](/ru/part-v-types-of-indexes/)
- [Хеш-индекс](/ru/24-hash/)
- [B-дерево](/ru/25-b-tree/)
- [Индекс GiST](/ru/26-gist/)
- [Индекс SP-GiST](/ru/27-sp-gist/)
- [Индекс GIN](/ru/28-gin/)
- [Индекс BRIN](/ru/29-brin/)
- [Заключение](/ru/conclusion/)
- [Предметный указатель](/ru/index/)
- [Издательские сведения](/ru/colophon/)
