Sobes.tech
Назад к вопросам
Senior
4

Расскажи про партиционирование в PostgreSQL

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Партиционирование в PostgreSQL — это метод разделения большой таблицы на более мелкие части (партиции) для улучшения производительности и управляемости данных.

Основные моменты:

  • Партиционирование позволяет разбивать таблицу по ключу (например, по дате или диапазону значений).
  • Каждая партиция — это отдельная таблица, но для пользователя они выглядят как одна логическая таблица.
  • В PostgreSQL поддерживаются разные типы партиционирования: RANGE (диапазон), LIST (список значений), HASH (хэширование).
  • Запросы к партиционированной таблице оптимизируются: PostgreSQL обращается только к нужным партициям (partition pruning).

Пример создания партиционированной таблицы по диапазону дат:

CREATE TABLE sales (
  id serial,
  sale_date date,
  amount numeric
) PARTITION BY RANGE (sale_date);

CREATE TABLE sales_2023 PARTITION OF sales
  FOR VALUES FROM ('2023-01-01') TO ('2024-01-01');

CREATE TABLE sales_2024 PARTITION OF sales
  FOR VALUES FROM ('2024-01-01') TO ('2025-01-01');

Партиционирование помогает ускорить запросы, упростить архивирование и обслуживание больших объемов данных.