Часть VII. Внутреннее устройство#

Часть VII. Внутреннее устройство

Часть VII. Внутреннее устройство

Эта часть содержит различную информацию, которая может быть полезна разработчикам Tantor BE.

Оглавление

48. Обзор внутреннего устройства PostgreSQL
48.1. Путь запроса
48.2. Как устанавливаются соединения
48.3. Этап разбора
48.4. Система правил Tantor BE
48.5. Планировщик/Оптимизатор
48.6. Исполнитель
49. Системные каталоги
49.1. Обзор
49.2. pg_aggregate
49.3. pg_am
49.4. pg_amop
49.5. pg_amproc
49.6. pg_attrdef
49.7. pg_attribute
49.8. pg_authid
49.9. pg_auth_members
49.10. pg_cast
49.11. pg_class
49.12. pg_collation
49.13. pg_constraint
49.14. pg_conversion
49.15. pg_database
49.16. pg_db_role_setting
49.17. pg_default_acl
49.18. pg_depend
49.19. pg_description
49.20. pg_enum
49.21. pg_event_trigger
49.22. pg_extension
49.23. pg_foreign_data_wrapper
49.24. pg_foreign_server
49.25. pg_foreign_table
49.26. pg_index
49.27. pg_inherits
49.28. pg_init_privs
49.29. pg_language
49.30. pg_largeobject
49.31. pg_largeobject_metadata
49.32. pg_namespace
49.33. pg_opclass
49.34. pg_operator
49.35. pg_opfamily
49.36. pg_parameter_acl
49.37. pg_partitioned_table
49.38. pg_policy
49.39. pg_proc
49.40. pg_publication
49.41. pg_publication_namespace
49.42. pg_publication_rel
49.43. pg_range
49.44. pg_replication_origin
49.45. pg_rewrite
49.46. pg_seclabel
49.47. pg_sequence
49.48. pg_shdepend
49.49. pg_shdescription
49.50. pg_shseclabel
49.51. pg_statistic
49.52. pg_statistic_ext
49.53. pg_statistic_ext_data
49.54. pg_subscription
49.55. pg_subscription_rel
49.56. pg_tablespace
49.57. pg_transform
49.58. pg_trigger
49.59. pg_ts_config
49.60. pg_ts_config_map
49.61. pg_ts_dict
49.62. pg_ts_parser
49.63. pg_ts_template
49.64. pg_type
49.65. pg_user_mapping
50. Системные представления
50.1. Обзор
50.2. pg_available_extensions
50.3. pg_available_extension_versions
50.4. pg_backend_memory_contexts
50.5. pg_config
50.6. pg_cursors
50.7. pg_file_settings
50.8. pg_group
50.9. pg_hba_file_rules
50.10. pg_ident_file_mappings
50.11. pg_indexes
50.12. pg_locks
50.13. pg_matviews
50.14. pg_policies
50.15. pg_prepared_statements
50.16. pg_prepared_xacts
50.17. pg_publication_tables
50.18. pg_replication_origin_status
50.19. pg_replication_slots
50.20. pg_roles
50.21. pg_rules
50.22. pg_seclabels
50.23. pg_sequences
50.24. pg_settings
50.25. pg_shadow
50.26. pg_shmem_allocations
50.27. pg_stats
50.28. pg_stats_ext
50.29. pg_stats_ext_exprs
50.30. pg_tables
50.31. pg_timezone_abbrevs
50.32. pg_timezone_names
50.33. pg_user
50.34. pg_user_mappings
50.35. pg_views
50.36. pg_wait_events
51. Протокол клиент/сервер
51.1. Обзор
51.2. Поток сообщений
51.3. SASL аутентификация
51.4. Протокол потоковой репликации
51.5. Протокол логической потоковой репликации
51.6. Типы данных сообщений
51.7. Форматы сообщений
51.8. Поля сообщений об ошибках и уведомлениях
51.9. Форматы сообщений логической репликации
51.10. Сводка изменений с протокола 2.0
52. Соглашения по кодированию PostgreSQL
52.1. Форматирование
52.2. Сообщение об ошибках внутри сервера
52.3. Стиль руководства по сообщениям об ошибках
52.4. Различные соглашения о кодировании
53. Поддержка родного языка
53.1. Для переводчика
53.2. Для программиста
54. Написание обработчика процедурного языка
55. Написание обертки внешних данных
55.1. Функции обертки внешних данных
55.2. Функции обратного вызова обертки внешних данных
55.3. Вспомогательные функции для обертки внешних данных
55.4. Планирование запросов в обертке внешних данных
55.5. Блокировка строк в обертках внешних данных
56. Написание метода выборки таблицы
56.1. Функции поддержки метода выборки
57. Написание пользовательского поставщика сканирования
57.1. Создание пользовательских путей сканирования
57.2. Создание пользовательских планов сканирования
57.3. Выполнение пользовательских сканирований
58. Генетический оптимизатор запросов
58.1. Обработка запросов как сложная оптимизационная задача
58.2. Генетические алгоритмы
58.3. Генетическая оптимизация запросов (GEQO) в PostgreSQL
58.4. Дополнительная информация
59. Определение интерфейса метода доступа к таблице
60. Определение интерфейса метода доступа к индексу
60.1. Основная структура API для индексов
60.2. Функции метода доступа к индексам
60.3. Индексное сканирование
60.4. Рассмотрение блокировки индекса
60.5. Проверка уникальности индекса
60.6. Функции оценки стоимости индекса
61. Журналирование с опережением для расширений
61.1. Общие записи WAL
61.2. Пользовательские менеджеры ресурсов WAL
62. Встроенные методы доступа к индексам
62.1. Индексы B-дерева
62.2. Индексы GiST
62.3. Индексы SP-GiST
62.4. Индексы GIN
62.5. Индексы BRIN
62.6. Хеш-индексы
63. Физическое хранение базы данных
63.1. Расположение файлов базы данных
63.2. TOAST
63.3. Карта свободного пространства (Free space map)
63.4. Карта видимости
63.5. Форк инициализации
63.6. Макет страницы базы данных
63.7. Кортежи только в куче (HOT)
64. Обработка транзакций
64.1. Транзакции и Идентификаторы
64.2. Транзакции и блокировки
64.3. Подтранзакции
64.4. Двухфазные транзакции
65. Объявления и начальное содержимое системного каталога
65.1. Правила объявления системного каталога
65.2. Начальные данные системного каталога
65.3. Формат файла BKI
65.4. Команды BKI
65.5. Структура файла Bootstrap BKI
65.6. BKI Пример
66. Как планировщик использует статистику
66.1. Примеры оценки количества строк
66.2. Примеры многомерной статистики
66.3. Статистика планировщика и безопасность
67. Формат резервной копии манифеста
67.1. Объект верхнего уровня резервной копии манифеста
67.2. Объект файла резервной копии манифеста
67.3. Резервная копия диапазона WAL объекта манифеста