Партіціонірованіе (partitioning) таблиць, it technologies in our life
Партіціонірованіе (partitioning) - це розбиття великих таблиць на логічні частини за обраними критеріями.
Парціонірованние або секціоновані таблиці і індекси являються невід'ємною частиною великих баз даних, покликані поліпшити їх продуктивність і керованість.
Це дозволяє базі даних робити інтелектуальну вибірку - спочатку СУБД уточнить, який партіціі відповідає Ваш запит (якщо це реально) і тільки потім зробить цей запит, стосовно потрібної партіціі (або декільком партіціі). Таким чином, Ви розподіліть навантаження на таблицю по її розбиття. Отже вибірка типу "SELECT * FROM articles ORDER BY id DESC LIMIT 10" буде виконуватися тільки над останньою партіціі, яка значно менше всієї таблиці.
Багато СУБД підтримують партіціонірованіе на тому чи іншому рівні, наприклад:
Основні способи поділу таблиці на партіціі підтримувані усім вищевикладеним СУБД це:
- RANGE - По діапазону значень
PARTITION BY RANGE (store_id) (
PARTITION p0 VALUES LESS THAN (10),
PARTITION p1 VALUES LESS THAN (20),
PARTITION p3 VALUES LESS THAN (30)
);
PARTITION BY LIST (store_id) (
PARTITION pNorth VALUES IN (3,5,6,9,17),
PARTITION pEast VALUES IN (1,2,10,11,19,20)
)
PARTITION BY HASH (s_customer_id)
(PARTITION q01 TABLESPACE ts_01,
PARTITION q02 TABLESPACE ts_02,
PARTITION q03 TABLESPACE ts_03,
PARTITION q04 TABLESPACE ts_04
)
Хеш-партіціонірованіе (hash partitioning) означає рівномірний розподіл рядків таблиці по призначеним табличних просторів в залежності від значення ключа секціонування, який в даному випадку хешіруется. Цей вид секціонування зручно застосовувати для рядків, у яких розподіл значень ключа секціонування нерівномірно або погано групується.