pg_pathman. Оптимизация секционирования больших и распределенных баз данных#

Версия: 1.5.

В исходном дистрибутиве установлено по умолчанию: нет.

Связанные компоненты: отсутствуют.

Схема размещения: ext.

pg_pathman - это расширение, реализующее оптимизированное решение для секционирования больших и распределенных баз данных.

Секционированием данных называется разбиение одной большой логической таблицы на несколько меньших физических секций. Секционирование может принести следующую пользу:

  • в определенных ситуациях оно кардинально увеличивает быстродействие, особенно когда большой процент часто запрашиваемых строк таблицы относится к одной или лишь нескольким секциям. Секционирование может сыграть роль ведущих столбцов в индексах, что позволит уменьшить размер индекса и увеличит вероятность нахождения наиболее востребованных частей индексов в памяти;

  • когда в выборке или изменении данных задействована большая часть одной секции, последовательное сканирование этой секции может выполняться гораздо быстрее, чем случайный доступ по индексу к данным, разбросанным по всей таблице;

  • массовую загрузку и удаление данных можно осуществлять, добавляя и удаляя секции, если это было предусмотрено при проектировании секционированных таблиц. Операция ALTER TABLE DETACH PARTITION или удаление отдельной секции с помощью команды DROP TABLE выполняются гораздо быстрее, чем массовая обработка. Эти команды также полностью исключают накладные расходы, связанные с выполнением VACUUM после DELETE;

  • редко используемые данные можно перенести на более дешевые и медленные носители.

Доработка#

Доработка не проводилась.

Ограничения#

Ограничения отсутствуют.

Установка#

Необходимо добавить pg_pathman в настроечный параметр shared_preload_libraries в конфигурационном файле PostgreSQL.conf.

Важно:

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

Создать расширение в БД:

CREATE EXTENSION pg_pathman SCHEMA ext;

Настройка#

Настройка не требуется.

Ссылки на документацию разработчика#

Дополнительно поставляемый модуль pg_pathman.