Убиваем производительность с помощью партиционирования в PostgreSQL

Статья на сайте CYBERTEC, «Убиваем производительность с помощью разделения в PostgreSQL», написанная Ганс-Юргеном Шёнигом, рассказывает о том, как использование разделения (partitioning, партиционирование) в PostgreSQL влияет на производительность базы данных.

В статье обсуждается преимущества использования PostgreSQL в сравнении с Oracle. Разделение (partitioning) — это часть ядра PostgreSQL.

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

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

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

В заключение статья указывает на то, что использование разделения может замедлить обработку запросов, так как PostgreSQL должен проверить каждую часть на наличие соответствующих данных. Это может увеличить время выполнения запроса и уменьшить общую производительность.

https://www.cybertec-postgresql.com/en/killing-performance-with-postgresql-partitioning/


Опубликовано

в

,

от

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *