Проектирование баз данных
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');
Преимущества
Недостатки
Проектирование баз данных