PostgreSQL 16 изнутри

PostgreSQL 16 изнутри

PostgreSQL 16 изнутри
Автор: Рогов Егор
Дата выхода: 2024
Издательство: ДМК Пресс
Количество страниц: 665
Размер файла: 6,5 МБ
Тип файла: 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

Очистка индексов....132

Очистка таблицы....134

Усечение таблицы....134

Анализ....135

Автоматическая очистка и анализ....135

Устройство автоочистки....136

Какие таблицы требуют очистки....137

Какие таблицы требуют анализа....139

Автоочистка в действии....140

Регулирование нагрузки....144

Управление интенсивностью обычной очистки....145

Управление интенсивностью автоочистки....145

Мониторинг очистки....146

Отслеживание выполнения ручной очистки....147

Отслеживание выполнения автоочистки....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

Блокировки номеров транзакций....251

Блокировки отношений....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

Мониторинг ожиданий....300

Семплирование....302

Часть IV. Выполнение запросов....306

Глава 16. Этапы выполнения запросов....308

Демонстрационная база данных....308

Простой протокол запросов....311

Разбор....311

Трансформация....313

Планирование....315

Исполнение....324

Расширенный протокол запросов....326

Подготовка....326

Привязка параметров....327

Планирование и исполнение....328

Получение результатов....331

Глава 17. Статистика....332

Базовая статистика....332

Неопределенные значения....336

Уникальные значения....337

Наиболее частые значения....339

Гистограмма....342

Статистика для нескалярных типов данных....346

Средний размер поля....347

Корреляция....347

Статистика по выражению....348

Расширенная статистика по выражению....349

Статистика для индекса по выражению....350

Многовариантная статистика....351

Функциональные зависимости между столбцами....351

Многовариантное число различных значений....353

Многовариантные списки частых значений....355

Глава 18. Табличные методы доступа....357

Подключаемые движки хранения....357

Последовательное сканирование....360

Оценка стоимости....361

Параллельные планы выполнения....365

Параллельное последовательное сканирование....366

Оценка стоимости....366

Ограничения параллельного выполнения....370

Количество рабочих процессов....370

Нераспараллеливаемые запросы....374

Ограниченно распараллеливаемые запросы....375

Глава 19. Индексные методы доступа....380

Индексы и расширяемость....380

Классы и семейства операторов....383

Класс операторов....383

Семейство операторов....388

Интерфейс механизма индексирования....390

Свойства метода доступа....391

Свойства индекса....395

Свойства столбцов....396

Глава 20. Индексное сканирование....400

Простое индексное сканирование....400

Оценка стоимости....401

Хороший случай: высокая корреляция....402

Плохой случай: низкая корреляция....405

Сканирование только индекса....408

Include-индексы....411

Сканирование по битовой карте....413

Точность карты....414

Действия с битовыми картами....416

Оценка стоимости....417

Параллельные версии индексного сканирования....421

Сравнение методов доступа....423

Глава 21. Вложенный цикл....425

Виды и способы соединений....425

Соединение вложенным циклом....427

Декартово произведение....427

Параметризованное соединение....431

Кеширование (мемоизация) строк....435

Внешние соединения....439

Анти- и полусоединения....440

Неэквисоединения....442

Параллельный режим....443

Глава 22. Хеширование....445

Соединение хешированием....445

Однопроходное соединение хешированием....445

Двухпроходное соединение хешированием....451

Динамические корректировки плана....454

Соединение хешированием в параллельных планах....458

Параллельное однопроходное хеш-соединение....459

Параллельное двухпроходное хеш-соединение....461

Модификации....464

Группировка и уникальные значения....466

Глава 23. Сортировка и слияние....470

Соединение слиянием....470

Слияние отсортированных наборов....470

Параллельный режим....474

Модификации....475

Сортировка....476

Быстрая сортировка....478

Частичная пирамидальная сортировка....479

Внешняя сортировка....481

Инкрементальная сортировка....485

Параллельный режим....487

Группировка и уникальные значения....489

Сравнение способов соединения....492

Часть V. Типы индексов....496

Глава 24. Хеш-индекс....498

Общий принцип....498

Страничная организация....499

Класс операторов....506

Свойства....507

Свойства метода доступа....507

Свойства индекса....508

Свойства столбцов....509

Глава 25. B-дерево....510

Общий принцип....510

Поиск и вставка....511

Поиск по равенству....511

Поиск по неравенству....513

Поиск по диапазону....514

Вставка....514

Страничная организация....516

Компактное хранение дубликатов....520

Компактное хранение внутренних индексных записей....522

Класс операторов....523

Семантика сравнения....523

Сортировка и составные индексы....529

Свойства....534

Свойства метода доступа....534

Свойства индекса....535

Свойства столбцов....535

Глава 26. Индекс GiST....537

Общий принцип....537

R-дерево для точек....539

Страничная организация....542

Класс операторов....543

Поиск вхождения в область....545

Поиск ближайших соседей....547

Вставка....552

Ограничение исключения....553

Свойства....556

RD-дерево для полнотекстового поиска....559

Про полнотекстовый поиск....559

Индексация tsvector....560

Свойства....568

Другие типы данных....568

Глава 27. Индекс SP-GiST....571

Общий принцип....571

Дерево квадрантов для точек....573

Класс операторов....574

Страничная организация....578

Поиск....579

Вставка....580

Свойства....583

K-мерные деревья для точек....585

Префиксное дерево для строк....587

Класс операторов....588

Поиск....589

Вставка....590

Свойства....592

Другие типы данных....593

Глава 28. Индекс GIN....595

Общий принцип....595

Индекс для полнотекстового поиска....596

Страничная организация....598

Класс операторов....600

Поиск....602

Частые и редкие лексемы....603

Вставка....607

Ограничение выборки....609

Свойства....610

Ограничения GIN и RUM-индекс....612

Индекс для триграмм....613

Индекс для массивов....615

Индекс для JSON....619

Класс операторов jsonb_ops....619

Класс операторов jsonb_path_ops....622

Другие типы данных....624

Глава 29. Индекс BRIN....625

Общий принцип....625

Пример....626

Страничная организация....628

Поиск....630

Обновление сводной информации....631

Вставка значений....631

Обобщение зоны....632

Диапазоны значений (minmax)....633

Выбор столбцов для индексирования....634

Размер зоны и эффективность поиска....635

Свойства....639

Мультидиапазоны значений (minmax-multi)....642

Охватывающие значения (inclusion)....645

Фильтры Блума (bloom)....648

Заключение....653

Предметный указатель....654

Перед вами обновленное издание бестселлера "PostgreSQL изнутри".

Рассматривается внутреннее устройство СУБД PostgreSQL: детали реализации многоверсионности и изоляции на основе снимков данных, включая процедуру очистки неактуальных версий строк; буферный кеш и журнал предзаписи; использование блокировок различных уровней; планирование и выполнение SQL-запросов; принципы расширяемости и особенности имеющихся индексных методов доступа. Большое внимание уделяется возможностям, предоставляемым для самостоятельного изучения механизмов функционирования PostgreSQL.В новом издании учтены замечания читателей и исправлены опечатки, а также внесены изменения, произошедшие в версии PostgreSQL 16.

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


Похожее:

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

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