PostgreSQL 17 изнутри

PostgreSQL 17 изнутри

PostgreSQL 17 изнутри
Автор: Рогов Егор
Дата выхода: 2025
Издательство: ДМК Пресс
Количество страниц: 670
Размер файла: 6.0 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

О книге....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: детали реализации многоверсионности и изоляции на основе снимков данных, включая процедуру очистки неактуальных версий строк; буферный кеш и журнал предзаписи; использование блокировок различных уровней; планирование и выполнение SQL-запросов; принципы расширяемости и особенности имеющихся индексных методов доступа. Большое внимание уделяется возможностям, предоставляемым для самостоятельного изучения механизмов функционирования PostgreSQL.

В новом издании учтены замечания читателей и исправлены опечатки, а также внесены изменения, произошедшие в версии PostgreSQL 17.

Книга предназначена администраторам и программистам, а также будет полезна всем разработчикам, которых не устраивает работа с базой данных как с "черным ящиком".


Похожее:

Список отзывов:

Нет отзывов к книге.