Sobes.tech
Senior
26

Что такое партиционирование в PostgreSQL? Чем отличается от шардинга?

Компании, где спрашивали
Альфа-БанкАльфа-Банк

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

sobes.tech AI

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

Отличие от шардинга:

  • Партиционирование — это логическое разделение данных внутри одной базы данных на одном сервере.
  • Шардинг — это горизонтальное распределение данных между разными серверами или инстансами баз данных, где каждый сервер хранит свою часть данных.

Таким образом, партиционирование — это способ оптимизации и организации данных внутри одной базы, а шардинг — масштабирование базы данных на несколько узлов для повышения доступности и производительности.

Пример партиционирования в PostgreSQL:

CREATE TABLE orders (
    id serial PRIMARY KEY,
    order_date date NOT NULL,
    customer_id int NOT NULL
) PARTITION BY RANGE (order_date);

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

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