Секционирование

Поделись знанием:
Перейти к: навигация, поиск

Секционирование (англ. partitioning) — разделение хранимых объектов баз данных (таких как таблиц, индексов, материализованных представлений) на отдельные части с раздельными параметрами физического хранения. Используется в целях повышения управляемости, производительности и доступности для больших баз данных.

Возможные критерии разделения данных, используемые при секционировании:

  • по предопределённым диапазонам значений
  • по спискам значений
  • при помощи значений хэш-функций

Под композитными (составными) критериями разделения понимают последовательно применённые критерии разных типов.

Секционирование реализовано во многих реляционных СУБД, в частности в IBM DB2, Informix, Oracle Database, Teradata Database, Microsoft SQL Server, PostgreSQL, MySQL, Sybase.





Реализация в СУБД

Oracle Database

В Oracle Database секционирование позволяет большие структуры базы данных (таблицы, индексы) разбить на меньшие части, называемые разделами (англ. partition). Oracle предлагает несколько методов для различных сценариев:

  • секционирование по диапазонам значений (range partitioning),
  • хеш-секционирование (hash partitioning),
  • секционирование по списку значений (list partitioning),
  • ссылочное секционирование (reference partitioning) (начиная с версии 11g),
  • секционирование по интервалу (interval partitioning) (11g),
  • составное секционирование:
    • диапазонное секционирование с хеш-подсекционированием (range-hash composite partitioning),
    • диапазонное секционирование со списочным подсекционированием (range-list composite partitioning).

Также существует 3 типа секционированных индексов:

  • локально секционированный индекс (local index), то есть секции индекса соответствуют секциям таблицы;
  • глобально секционированный индекс (global partitioned index), такой индекс разбивается на секции по другим правилам, нежели сама таблица;
  • глобально несекционированный индекс (global non-partitioned index), такой индекс не разбивается на секции хотя таблица разбита;
  • всевозможные комбинации из этих трёх.

Informix

В Informix секционирование называется фрагментацией (англ. framentation), и также позволяет разбивать таблицы и индексы на отдельные фрагменты по разным схемам:

  • круговая фрагментация,
  • по выражениям,
  • по списку значений,
  • по интервалам.

MySQL

MySQL начиная с версии 5.1 поддерживает секционирование[1]. Поддерживаются следующие типы секционирования:

  • по интервалам (range partitioning),
  • по списку значений (list partitioning),
  • по хешу (hash partitioning),
  • по ключам (key partitioning).

Напишите отзыв о статье "Секционирование"

Примечания

  1. [dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html 18.1. Overview of Partitioning in MySQL]

Ссылки

  • [docs.oracle.com/cd/E16655_01/server.121/e17613/intro.htm Oracle VLDB and Partitioning Guide 12c Release 1]  (англ.)
  • [publib.boulder.ibm.com/infocenter/idshelp/v117/topic/com.ibm.ddi.doc/ids_ddi_085.htm%20 Informix Table fragmentation strategies]  (англ.)


Отрывок, характеризующий Секционирование

Петя стал закрывать глаза и покачиваться.
Капли капали. Шел тихий говор. Лошади заржали и подрались. Храпел кто то.
– Ожиг, жиг, ожиг, жиг… – свистела натачиваемая сабля. И вдруг Петя услыхал стройный хор музыки, игравшей какой то неизвестный, торжественно сладкий гимн. Петя был музыкален, так же как Наташа, и больше Николая, но он никогда не учился музыке, не думал о музыке, и потому мотивы, неожиданно приходившие ему в голову, были для него особенно новы и привлекательны. Музыка играла все слышнее и слышнее. Напев разрастался, переходил из одного инструмента в другой. Происходило то, что называется фугой, хотя Петя не имел ни малейшего понятия о том, что такое фуга. Каждый инструмент, то похожий на скрипку, то на трубы – но лучше и чище, чем скрипки и трубы, – каждый инструмент играл свое и, не доиграв еще мотива, сливался с другим, начинавшим почти то же, и с третьим, и с четвертым, и все они сливались в одно и опять разбегались, и опять сливались то в торжественно церковное, то в ярко блестящее и победное.
«Ах, да, ведь это я во сне, – качнувшись наперед, сказал себе Петя. – Это у меня в ушах. А может быть, это моя музыка. Ну, опять. Валяй моя музыка! Ну!..»
Он закрыл глаза. И с разных сторон, как будто издалека, затрепетали звуки, стали слаживаться, разбегаться, сливаться, и опять все соединилось в тот же сладкий и торжественный гимн. «Ах, это прелесть что такое! Сколько хочу и как хочу», – сказал себе Петя. Он попробовал руководить этим огромным хором инструментов.
«Ну, тише, тише, замирайте теперь. – И звуки слушались его. – Ну, теперь полнее, веселее. Еще, еще радостнее. – И из неизвестной глубины поднимались усиливающиеся, торжественные звуки. – Ну, голоса, приставайте!» – приказал Петя. И сначала издалека послышались голоса мужские, потом женские. Голоса росли, росли в равномерном торжественном усилии. Пете страшно и радостно было внимать их необычайной красоте.
С торжественным победным маршем сливалась песня, и капли капали, и вжиг, жиг, жиг… свистела сабля, и опять подрались и заржали лошади, не нарушая хора, а входя в него.
Петя не знал, как долго это продолжалось: он наслаждался, все время удивлялся своему наслаждению и жалел, что некому сообщить его. Его разбудил ласковый голос Лихачева.
– Готово, ваше благородие, надвое хранцуза распластаете.
Петя очнулся.
– Уж светает, право, светает! – вскрикнул он.
Невидные прежде лошади стали видны до хвостов, и сквозь оголенные ветки виднелся водянистый свет. Петя встряхнулся, вскочил, достал из кармана целковый и дал Лихачеву, махнув, попробовал шашку и положил ее в ножны. Казаки отвязывали лошадей и подтягивали подпруги.