PostgreSQL 15 изнутри

PostgreSQL 15 изнутри

PostgreSQL 15 изнутри
Автор: Рогов Егор
Дата выхода: 2023
Издательство: ДМК Пресс
Количество страниц: 663
Размер файла: 6.3 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-цепочки....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: детали реализации многоверсионности и изоляции на основе снимков данных, включая процедуру очистки неактуальных версий строк; буферный кеш и журнал предзаписи; использование блокировок различных уровней; планирование и выполнение SQL-запросов; принципы расширяемости и особенности имеющихся индексных методов доступа. Большое внимание уделяется возможностям, предоставляемым для самостоятельного изучения механизмов функционирования PostgreSQL.В новом издании учтены замечания читателей и исправлены опечатки, а также внесены изменения, произошедшие в версии PostgreSQL 15.

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


Похожее:

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

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