Партіціонірованіе (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)
);

Парціонірованіе за діапазоном (range partitioning) означає розподіл рядків таблиці на різні зумовлені табличні простору в залежності від значення ключа секціонування. Доступ до такої таблиці, як і до будь-якої іншої, здійснюється за її імені, причому доступ до секцій, розташованим в кожному табличному просторі, можна отримати окремо.
  • LIST - За списком значень

    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) означає рівномірний розподіл рядків таблиці по призначеним табличних просторів в залежності від значення ключа секціонування, який в даному випадку хешіруется. Цей вид секціонування зручно застосовувати для рядків, у яких розподіл значень ключа секціонування нерівномірно або погано групується.