Проєктування баз даних
Lis Sulmont
Curriculum Manager
Таблиці ростуть (сотні ГБ / ТБ)
Проблема: запити/оновлення повільнішають
Причина: напр., індекси не вміщуються в пам'ять
Рішення: розділити таблицю на менші частини (= секціонування)

1. Концептуальна модель даних
2. Логічна модель даних
Для секціонування логічна модель не змінюється
3. Фізична модель даних
Секціонування належить до фізичної моделі
Розділяйте таблицю навіть коли вона повністю нормалізована
Напр., зберігайте long_description на повільнішому носії


CREATE TABLE sales ( ... timestamp DATE NOT NULL ) PARTITION BY RANGE (timestamp);CREATE TABLE sales_2019_q1 PARTITION OF sales FOR VALUES FROM ('2019-01-01') TO ('2019-03-31'); ... CREATE TABLE sales_2019_q4 PARTITION OF sales FOR VALUES FROM ('2019-10-01') TO ('2020-01-31');CREATE INDEX ON sales ('timestamp');
Переваги
Недоліки
Проєктування баз даних