Skip to content

Введение в управление параллелизмом в PostgreSQL

Пересказ статьи Paul S.Randal. An Introduction to PostgreSQL Concurrency Control


Будучи длительное время консультантом по базам данных, я разрешил больше проблем, связанных с блокировками в базах данных, чем могу сосчитать. Зачастую эти блокировки возникали из-за конфликта между процессами, которым требовалось читать строки, модифицируемым в это время.

PostgreSQL использует оптимистическую систему изоляции, известную как Многоверсионный Контроль Параллелизма (MVCC). MVCC гарантирует, что транзакции, записывающие данные в базу, не блокируют параллельные транзакции, которым требуется читать модифицируемые данные. Это работает посредством магии версионности строк - PostgreSQL создает версии строк в таблицах базы данных для минимизации блокировок при параллельном доступе. По мере того, как все больше версий создается, для обеспечения надлежащего обслуживания таблиц должен использоваться механизм управления сборкой мусора, называемый VACUUM. В настоящей статье я объясню, как все это работает на ряде примеров. Продолжить чтение "Введение в управление параллелизмом в PostgreSQL"

Введение в B-Tree и хэш-индексы в PostgreSQL

Пересказ статьи Paul S. Randal. An Introduction to B-Tree and Hash Indexes in PostgreSQL


В этой статье изучаются реализация B-Tree (B означает сбалансированное) и структуры данных хэш-индекса в PostgreSQL. По мере роста популярности PostgreSQL в качестве системы баз данных с открытыми кодами для разработчиков и как цель для переноса рабочей нагрузки Oracle, понимание работы индексов в PostgreSQL исключительно важно для разработчиков и администраторов баз данных. PostgreSQL имеет несколько других типов индексов, таких как индексы GIN, индексы GiST и индексы BRIN. В этой статье я не буду их рассматривать, поскольку они специфичны для поиска в тексте, географических и других сложных типов данных. И, хотя использование индекса B-Tree покрывает примерно 90% случаев использования, хэш-индексы и их концепция также важны для понимания.
Продолжить чтение "Введение в B-Tree и хэш-индексы в PostgreSQL"