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.