PostgreSQL 17 изнутри

Оглавление⌄
О книге....18 Глава 1. Введение....24 Организация данных....24 Базы данных....24 Системный каталог....25 Схемы....26 Табличные пространства....27 Отношения....28 Слои и файлы....29 Страницы....34 TOAST....34 Процессы и память....40 Клиенты и клиент-серверный протокол....42 Часть I. Изоляция и многоверсионность....46 Глава 2. Изоляция....48 Согласованность....48 Уровни изоляции и аномалии в стандарте SQL....50 Потерянное обновление....51 Грязное чтение и Read Uncommitted....51 Неповторяющееся чтение и Read Committed....52 Фантомное чтение и Repeatable Read....52 Отсутствие аномалий и Serializable....53 Почему именно эти аномалии?....53 Уровни изоляции в PostgreSQL....55 Read Committed....56 Repeatable Read....64 Serializable....71 Какой уровень изоляции использовать?....74 Глава 3. Страницы и версии строк....76 Структура страниц....76 Заголовок страницы....76 Специальная область....77 Версии строк....77 Указатели на версии строк....78 Свободное место....79 Структура версий строк....79 Выполнение операций над версиями строк....81 Вставка....82 Фиксация....86 Удаление....88 Отмена....89 Обновление....89 Индексы....90 TOAST....91 Виртуальные транзакции....92 Вложенные транзакции....93 Точки сохранения....93 Ошибки и атомарность операций....95 Глава 4. Снимки данных....98 Что такое снимок данных....98 Видимость версий строк в снимке....99 Из чего состоит снимок....100 Видимость собственных изменений....105 Горизонт транзакции....106 Снимок данных для системного каталога....109 Экспорт снимка данных....110 Глава 5. Внутристраничная очистка и hot-обновления....112 Внутристраничная очистка....112 Hot-обновления....116 Внутристраничная очистка при hot-обновлениях....120 Разрыв hot-цепочки....122 Внутристраничная очистка индексов....124 Глава 6. Очистка и автоочистка....126 Очистка вручную....126 Еще раз о горизонте базы данных....129 Этапы выполнения очистки....132 Сканирование таблицы....132 Очистка индексов....133 Очистка таблицы....134 Усечение таблицы....134 Анализ....135 Автоматическая очистка и анализ....135 Устройство автоочистки....136 Какие таблицы требуют очистки....137 Какие таблицы требуют анализа....139 Автоочистка в действии....140 Регулирование нагрузки....144 Управление интенсивностью обычной очистки....145 Управление интенсивностью автоочистки....145 Мониторинг очистки....146 Отслеживание выполнения ручной очистки....146 Отслеживание выполнения автоочистки....149 Глава 7. Заморозка....151 Переполнение счетчика транзакций....151 Заморозка версий и правила видимости....152 Управление заморозкой....155 Минимальный возраст для заморозки....156 Возраст для агрессивной заморозки....158 Возраст для аварийного срабатывания автоочистки....160 Возраст для приоритетного режима заморозки....162 Заморозка вручную....163 Очистка с заморозкой....163 Заморозка при загрузке....163 Глава 8. Перестроение таблиц и индексов....166 Полная очистка....166 Необходимость....166 Оценка плотности информации....167 Заморозка....171 Другие способы перестроения....172 Аналоги полной очистки....172 Перестроение без долгих блокировок....173 Профилактика....174 Читающие запросы....174 Обновление данных....174 Часть II. Буферный кеш и журнал....178 Глава 9. Буферный кеш....180 Кеширование....180 Устройство буферного кеша....181 Попадание в кеш....183 Промах кеша....188 Поиск буфера и вытеснение....189 Массовое вытеснение....191 Настройка размера....195 Прогрев кеша....198 Локальный кеш....200 Глава 10. Журнал предзаписи....202 Журналирование....202 Устройство журнала....204 Логическая структура....204 Физическая структура....207 Контрольная точка....209 Восстановление....214 Фоновая запись....217 Настройка....218 Настройка контрольной точки....218 Настройка фоновой записи....221 Мониторинг....222 Глава 11. Режимы журнала....225 Производительность....225 Надежность....229 Кеширование....230 Повреждение данных....231 Неатомарность записи....233 Уровни журнала....237 Minimal....238 Replica....240 Logical....242 Часть III. Блокировки....244 Глава 12. Блокировки отношений....246 Общие сведения о блокировках....246 Тяжелые блокировки....249 Блокировки номеров транзакций....250 Блокировки отношений....252 Очередь ожидания....255 Глава 13. Блокировки строк....259 Устройство....259 Режимы блокировки строки....260 Исключительные режимы....260 Разделяемые режимы....262 Мультитранзакции....263 Очередь ожидания....265 Исключительные режимы....265 Разделяемые режимы....272 Блокировка без ожидания....275 Взаимоблокировки....277 Взаимоблокировка при обновлении строк....279 Взаимоблокировка двух команд UPDATE....280 Глава 14. Блокировки разных объектов....284 Блокировки неотношений....284 Блокировки расширения отношения....286 Блокировки страниц....287 Рекомендательные блокировки....287 Предикатные блокировки....289 Глава 15. Блокировки в памяти....296 Спин-блокировки....296 Легкие блокировки....297 Примеры....297 Буферный кеш....297 Буферы журнала предзаписи....299 Кеш SLRU....300 Мониторинг ожиданий....301 Семплирование....303 Часть IV. Выполнение запросов....306 Глава 16. Этапы выполнения запросов....308 Демонстрационная база данных....308 Простой протокол запросов....311 Разбор....311 Трансформация....313 Планирование....315 Исполнение....326 Расширенный протокол запросов....328 Подготовка....328 Привязка параметров....329 Планирование и исполнение....330 Получение результатов....333 Глава 17. Статистика....334 Базовая статистика....334 Неопределенные значения....338 Уникальные значения....339 Наиболее частые значения....341 Гистограмма....344 Статистика для нескалярных типов данных....348 Средний размер поля....349 Корреляция....349 Статистика по выражению....350 Расширенная статистика по выражению....351 Статистика для индекса по выражению....352 Многовариантная статистика....353 Функциональные зависимости между столбцами....353 Многовариантное число различных значений....355 Многовариантные списки частых значений....357 Глава 18. Табличные методы доступа....359 Подключаемые движки хранения....359 Последовательное сканирование....362 Оценка стоимости....363 Параллельные планы выполнения....367 Параллельное последовательное сканирование....368 Оценка стоимости....368 Ограничения параллельного выполнения....372 Количество рабочих процессов....372 Нераспараллеливаемые запросы....376 Ограниченно распараллеливаемые запросы....377 Глава 19. Индексные методы доступа....382 Индексы и расширяемость....382 Классы и семейства операторов....385 Класс операторов....385 Семейство операторов....390 Интерфейс механизма индексирования....392 Свойства метода доступа....393 Свойства индекса....397 Свойства столбцов....398 Глава 20. Индексное сканирование....402 Простое индексное сканирование....402 Оценка стоимости....403 Хороший случай: высокая корреляция....404 Плохой случай: низкая корреляция....407 Сканирование только индекса....410 Include-индексы....413 Сканирование по битовой карте....415 Точность карты....416 Действия с битовыми картами....418 Оценка стоимости....419 Параллельные версии индексного сканирования....423 Сравнение методов доступа....425 Глава 21. Вложенный цикл....427 Виды и способы соединений....427 Соединение вложенным циклом....429 Декартово произведение....429 Параметризованное соединение....433 Кеширование (мемоизация) строк....437 Внешние соединения....441 Анти- и полусоединения....442 Неэквисоединения....444 Параллельный режим....445 Глава 22. Хеширование....447 Соединение хешированием....447 Однопроходное соединение хешированием....447 Двухпроходное соединение хешированием....453 Динамические корректировки плана....456 Соединение хешированием в параллельных планах....460 Параллельное однопроходное хеш-соединение....461 Параллельное двухпроходное хеш-соединение....463 Модификации....466 Группировка и уникальные значения....468 Глава 23. Сортировка и слияние....473 Соединение слиянием....473 Слияние отсортированных наборов....473 Параллельный режим....477 Модификации....478 Сортировка....479 Быстрая сортировка....481 Частичная пирамидальная сортировка....482 Внешняя сортировка....484 Инкрементальная сортировка....488 Параллельный режим....490 Группировка и уникальные значения....492 Сравнение способов соединения....495 Часть V. Типы индексов....500 Глава 24. Хеш-индекс....502 Общий принцип....502 Страничная организация....503 Класс операторов....510 Свойства....511 Свойства метода доступа....511 Свойства индекса....512 Свойства столбцов....513 Глава 25. B-дерево....514 Общий принцип....514 Поиск и вставка....515 Поиск по равенству....515 Поиск по неравенству....517 Поиск по диапазону....518 Вставка....518 Страничная организация....520 Компактное хранение дубликатов....524 Компактное хранение внутренних индексных записей....526 Класс операторов....527 Семантика сравнения....527 Сортировка и составные индексы....533 Свойства....538 Свойства метода доступа....538 Свойства индекса....539 Свойства столбцов....540 Глава 26. Индекс GiST....541 Общий принцип....541 R-дерево для точек....543 Страничная организация....546 Класс операторов....547 Поиск вхождения в область....549 Поиск ближайших соседей....551 Вставка....556 Ограничение исключения....557 Свойства....560 RD-дерево для полнотекстового поиска....563 Про полнотекстовый поиск....563 Индексация tsvector....564 Свойства....572 Другие типы данных....572 Глава 27. Индекс SP-GiST....575 Общий принцип....575 Дерево квадрантов для точек....577 Класс операторов....578 Страничная организация....582 Поиск....583 Вставка....584 Свойства....587 K-мерные деревья для точек....589 Префиксное дерево для строк....591 Класс операторов....592 Поиск....593 Вставка....594 Свойства....596 Другие типы данных....597 Глава 28. Индекс GIN....599 Общий принцип....599 Индекс для полнотекстового поиска....600 Страничная организация....602 Класс операторов....604 Поиск....606 Частые и редкие лексемы....607 Вставка....611 Ограничение выборки....613 Свойства....614 Ограничения GIN и RUM-индекс....616 Индекс для триграмм....617 Индекс для массивов....619 Индекс для JSON....623 Класс операторов jsonb_ops....623 Класс операторов jsonb_path_ops....626 Другие типы данных....628 Глава 29. Индекс BRIN....629 Общий принцип....629 Пример....630 Страничная организация....632 Поиск....634 Обновление сводной информации....635 Вставка значений....635 Обобщение зоны....636 Диапазоны значений (minmax)....637 Выбор столбцов для индексирования....638 Размер зоны и эффективность поиска....639 Свойства....643 Мультидиапазоны значений (minmax-multi)....646 Охватывающие значения (inclusion)....649 Фильтры Блума (bloom)....652 Заключение....657 Предметный указатель....658
Описание
В этом материале разберём тему: postgresql.
Перед вами обновленное издание бестселлера "PostgreSQL изнутри".
Рассматривается внутреннее устройство СУБД PostgreSQL: детали реализации многоверсионности и изоляции на основе снимков данных, включая процедуру очистки неактуальных версий строк; буферный кеш и журнал предзаписи; использование блокировок различных уровней; планирование и выполнение SQL-запросов; принципы расширяемости и особенности имеющихся индексных методов доступа. Большое внимание уделяется возможностям, предоставляемым для самостоятельного изучения механизмов функционирования PostgreSQL.
В новом издании учтены замечания читателей и исправлены опечатки, а также внесены изменения, произошедшие в версии PostgreSQL 17.
Книга предназначена администраторам и программистам, а также будет полезна всем разработчикам, которых не устраивает работа с базой данных как с "черным ящиком".
Файл доступен для загрузки ниже.
Поделиться
Частые вопросы
Можно ли скачать «PostgreSQL 17 изнутри» бесплатно?
Да, «PostgreSQL 17 изнутри» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF, размер файла 6,0 МБ.
Кто автор и когда вышла книга?
автор — Рогов Егор, издательство ДМК Пресс, год выпуска 2025, 670 страниц.
О чём книга «PostgreSQL 17 изнутри»?
Перед вами обновленное издание бестселлера "PostgreSQL изнутри".Рассматривается внутреннее устройство СУБД PostgreSQL: детали реализации многоверсионности и изоляции на основе снимков данных, включая процедуру очистки неактуальных версий ст