PostgreSQL 15 изнутри

Оглавление⌄
О книге....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-цепочки....121 Внутристраничная очистка индексов....123 Глава 6. Очистка и автоочистка....125 Очистка вручную....125 Еще раз о горизонте базы данных....128 Этапы выполнения очистки....131 Сканирование таблицы....131 Очистка индексов....131 Очистка таблицы....133 Усечение таблицы....133 Анализ....134 Автоматическая очистка и анализ....134 Устройство автоочистки....135 Какие таблицы требуют очистки....136 Какие таблицы требуют анализа....138 Автоочистка в действии....139 Регулирование нагрузки....143 Управление интенсивностью обычной очистки....144 Управление интенсивностью автоочистки....144 Мониторинг очистки....145 Отслеживание выполнения ручной очистки....146 Отслеживание выполнения автоочистки....148 Глава 7. Заморозка....150 Переполнение счетчика транзакций....150 Заморозка версий и правила видимости....151 Управление заморозкой....154 Минимальный возраст для заморозки....155 Возраст для агрессивной заморозки....157 Возраст для аварийного срабатывания автоочистки....159 Возраст для приоритетного режима заморозки....161 Заморозка вручную....161 Очистка с заморозкой....162 Заморозка при загрузке....162 Глава 8. Перестроение таблиц и индексов....164 Полная очистка....164 Необходимость....164 Оценка плотности информации....165 Заморозка....169 Другие способы перестроения....170 Аналоги полной очистки....170 Перестроение без долгих блокировок....171 Профилактика....172 Читающие запросы....172 Обновление данных....173 Часть II. Буферный кеш и журнал....176 Глава 9. Буферный кеш....178 Кеширование....178 Устройство буферного кеша....179 Попадание в кеш....181 Промах кеша....186 Поиск буфера и вытеснение....187 Массовое вытеснение....189 Настройка размера....192 Прогрев кеша....195 Локальный кеш....197 Глава 10. Журнал предзаписи....199 Журналирование....199 Устройство журнала....201 Логическая структура....201 Физическая структура....204 Контрольная точка....206 Восстановление....211 Фоновая запись....214 Настройка....215 Настройка контрольной точки....215 Настройка фоновой записи....218 Мониторинг....218 Глава 11. Режимы журнала....221 Производительность....221 Надежность....225 Кеширование....226 Повреждение данных....227 Неатомарность записи....229 Уровни журнала....233 Minimal....234 Replica....236 Logical....238 Часть III. Блокировки....240 Глава 12. Блокировки отношений....242 Общие сведения о блокировках....242 Тяжелые блокировки....245 Блокировки номеров транзакций....247 Блокировки отношений....248 Очередь ожидания....251 Глава 13. Блокировки строк....255 Устройство....255 Режимы блокировки строки....256 Исключительные режимы....256 Разделяемые режимы....258 Мультитранзакции....259 Очередь ожидания....261 Исключительные режимы....261 Разделяемые режимы....268 Блокировка без ожидания....271 Взаимоблокировки....273 Взаимоблокировка при обновлении строк....275 Взаимоблокировка двух команд UPDATE....276 Глава 14. Блокировки разных объектов....280 Блокировки неотношений....280 Блокировки расширения отношения....282 Блокировки страниц....283 Рекомендательные блокировки....283 Предикатные блокировки....285 Глава 15. Блокировки в памяти....292 Спин-блокировки....292 Легкие блокировки....293 Примеры....293 Буферный кеш....293 Буферы журнала предзаписи....295 Мониторинг ожиданий....296 Семплирование....298 Часть IV. Выполнение запросов....302 Глава 16. Этапы выполнения запросов....304 Демонстрационная база данных....304 Протокол простых запросов....307 Разбор....307 Трансформация....309 Планирование....311 Исполнение....320 Протокол расширенных запросов....322 Подготовка....322 Привязка параметров....323 Планирование и исполнение....324 Получение результатов....327 Глава 17. Статистика....328 Базовая статистика....328 Неопределенные значения....332 Уникальные значения....333 Наиболее частые значения....335 Гистограмма....338 Статистика для нескалярных типов данных....342 Средний размер поля....343 Корреляция....343 Статистика по выражению....344 Расширенная статистика по выражению....345 Статистика для индекса по выражению....346 Многовариантная статистика....347 Функциональные зависимости между столбцами....347 Многовариантное число различных значений....349 Многовариантные списки частых значений....351 Глава 18. Табличные методы доступа....353 Подключаемые движки хранения....353 Последовательное сканирование....355 Оценка стоимости....356 Параллельные планы выполнения....360 Параллельное последовательное сканирование....361 Оценка стоимости....362 Ограничения параллельного выполнения....366 Количество рабочих процессов....366 Нераспараллеливаемые запросы....370 Ограниченно распараллеливаемые запросы....371 Глава 19. Индексные методы доступа....376 Индексы и расширяемость....376 Классы и семейства операторов....379 Класс операторов....379 Семейство операторов....384 Интерфейс механизма индексирования....386 Свойства метода доступа....387 Свойства индекса....391 Свойства столбцов....392 Глава 20. Индексное сканирование....396 Простое индексное сканирование....396 Оценка стоимости....397 Хороший случай: высокая корреляция....398 Плохой случай: низкая корреляция....401 Сканирование только индекса....404 Include-индексы....407 Сканирование по битовой карте....409 Точность карты....410 Действия с битовыми картами....412 Оценка стоимости....413 Параллельные версии индексного сканирования....417 Сравнение методов доступа....419 Глава 21. Вложенный цикл....421 Виды и способы соединений....421 Соединение вложенным циклом....423 Декартово произведение....423 Параметризованное соединение....427 Кеширование (мемоизация) строк....431 Внешние соединения....435 Анти- и полусоединения....437 Неэквисоединения....439 Параллельный режим....440 Глава 22. Хеширование....442 Соединение хешированием....442 Однопроходное соединение хешированием....442 Двухпроходное соединение хешированием....448 Динамические корректировки плана....451 Соединение хешированием в параллельных планах....455 Параллельное однопроходное хеш-соединение....456 Параллельное двухпроходное хеш-соединение....458 Модификации....461 Группировка и уникальные значения....464 Глава 23. Сортировка и слияние....467 Соединение слиянием....467 Слияние отсортированных наборов....467 Параллельный режим....471 Модификации....472 Сортировка....473 Быстрая сортировка....475 Частичная пирамидальная сортировка....476 Внешняя сортировка....478 Инкрементальная сортировка....482 Параллельный режим....484 Группировка и уникальные значения....486 Сравнение способов соединения....489 Часть V. Типы индексов....494 Глава 24. Хеш-индекс....496 Общий принцип....496 Страничная организация....497 Класс операторов....504 Свойства....505 Свойства метода доступа....505 Свойства индекса....506 Свойства столбцов....507 Глава 25. B-дерево....508 Общий принцип....508 Поиск и вставка....509 Поиск по равенству....509 Поиск по неравенству....511 Поиск по диапазону....512 Вставка....512 Страничная организация....514 Компактное хранение дубликатов....518 Компактное хранение внутренних индексных записей....520 Класс операторов....521 Семантика сравнения....521 Сортировка и составные индексы....527 Свойства....532 Свойства метода доступа....532 Свойства индекса....533 Свойства столбцов....533 Глава 26. Индекс GiST....535 Общий принцип....535 R-дерево для точек....537 Страничная организация....540 Класс операторов....541 Поиск вхождения в область....543 Поиск ближайших соседей....545 Вставка....550 Ограничение исключения....551 Свойства....554 RD-дерево для полнотекстового поиска....557 Про полнотекстовый поиск....557 Индексация tsvector....558 Свойства....566 Другие типы данных....566 Глава 27. Индекс SP-GiST....569 Общий принцип....569 Дерево квадрантов для точек....571 Класс операторов....572 Страничная организация....576 Поиск....577 Вставка....578 Свойства....581 K-мерные деревья для точек....583 Префиксное дерево для строк....585 Класс операторов....586 Поиск....587 Вставка....588 Свойства....590 Другие типы данных....591 Глава 28. Индекс GIN....593 Общий принцип....593 Индекс для полнотекстового поиска....594 Страничная организация....596 Класс операторов....598 Поиск....600 Частые и редкие лексемы....601 Вставка....605 Ограничение выборки....607 Свойства....608 Ограничения GIN и RUM-индекс....610 Индекс для триграмм....611 Индекс для массивов....613 Индекс для JSON....617 Класс операторов jsonb_ops....617 Класс операторов jsonb_path_ops....620 Другие типы данных....622 Глава 29. Индекс BRIN....623 Общий принцип....623 Пример....624 Страничная организация....626 Поиск....628 Обновление сводной информации....629 Вставка значений....629 Обобщение зоны....630 Диапазоны значений (minmax)....631 Выбор столбцов для индексирования....632 Размер зоны и эффективность поиска....633 Свойства....637 Мультидиапазоны значений (minmax-multi)....640 Охватывающие значения (inclusion)....643 Фильтры Блума (bloom)....646 Заключение....651 Предметный указатель....652
Описание
Ниже — практический обзор по теме «postgresql».
Перед вами обновленное издание бестселлера "PostgreSQL изнутри".
Рассматривается внутреннее устройство СУБД PostgreSQL: детали реализации многоверсионности и изоляции на основе снимков данных, включая процедуру очистки неактуальных версий строк; буферный кеш и журнал предзаписи; использование блокировок различных уровней; планирование и выполнение SQL-запросов; принципы расширяемости и особенности имеющихся индексных методов доступа. Большое внимание уделяется возможностям, предоставляемым для самостоятельного изучения механизмов функционирования PostgreSQL.В новом издании учтены замечания читателей и исправлены опечатки, а также внесены изменения, произошедшие в версии PostgreSQL 15.
Книга предназначена администраторам и программистам, а также будет полезна всем разработчикам, которых не устраиват работа с базой данных как с "черным ящиком".
Если материал оказался полезен — сохраните страницу.
Поделиться
Частые вопросы
Можно ли скачать «PostgreSQL 15 изнутри» бесплатно?
Да, «PostgreSQL 15 изнутри» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF, размер файла 6,3 МБ.
Кто автор и когда вышла книга?
автор — Рогов Егор, издательство ДМК Пресс, год выпуска 2023, 663 страниц.
О чём книга «PostgreSQL 15 изнутри»?
Перед вами обновленное издание бестселлера "PostgreSQL изнутри".Рассматривается внутреннее устройство СУБД PostgreSQL: детали реализации многоверсионности и изоляции на основе снимков данных, включая процедуру очистки неактуальных версий ст