Секционирование | это... Что такое Секционирование? (original) (raw)
Секционирование (англ. partitioning) — реализованное во многих СУБД разделение хранимых объектов баз данных (таких как таблиц, индексов, материализованных представлений) на отдельные части с раздельными параметрами физического хранения. Используется в целях повышения управляемости, производительности и доступности для больших баз данных.
Возможные критерии разделения данных, используемые при секционировании:
- по предопределённым диапазонам значений
- по спискам значений
- при помощи значений хэш-функций
Под композитными критериями разделения понимают последовательно применённые критерии разных типов.
Секционирование реализовано во многих реляционных СУБД, в частности в IBM DB2, Informix, Oracle Database, Teradata Database, Microsoft SQL Server, PostgreSQL, MySQL.
Содержание
Реализация в разных СУБД
Oracle Database
В СУБД Oracle секционирование позволяет большие структуры базы данных (таблицы, индексы) разбить на меньшие части, называемые разделами (англ. 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), такой индекс не разбивается на секции хотя таблица разбита.
- всевозможные комбинации из этих 3-х
Informix
В Informix секционирование называется фрагментацией, и также позволяет разбивать таблицы и индексы на отдельные фрагменты по разным схемам:
- Круговая фрагментация
- По выражениям
- По списку значений
- По интервалам
MySQL
MySQL начиная с версии 5.1 поддерживает секционирование.[1] Поддерживаются следующие типы секционирования:
- По интервалам (RANGE partitioning)
- По списку значений (LIST partitioning)
- По хешу (HASH partitioning)
- По ключам (KEY partitioning)
Примечания
Ссылки
- Oracle Partitioning (англ.) [_нет в источнике_]
- Informix Table fragmentation strategies (англ.)
Базы данных | |
---|---|
Концепции | Модель данных • Реляционная (модель • алгебра • Нормальная форма • Ссылочная целостность • БД • СУБД) • Иерархическая модель • Сетевая (модель • СУБД) • Объектно-ориентированная (БД • СУБД) • Транзакция • Журнализация • Секционирование |
Объекты | Отношение (таблица) • Представление • Хранимая процедура • Триггер • Курсор • Индекс |
Ключи | Потенциальный • Первичный • Внешний • Естественный • Суррогатный (искусственный) • Суперключ |
SQL | SELECT • INSERT • UPDATE • MERGE • DELETE • TRUNCATE • JOIN • UNION • INTERSECT • EXCEPT • CREATE • ALTER • DROP • GRANT • COMMIT • ROLLBACK |
СУБД | IMS • DB2 • Informix • Oracle Database • Microsoft SQL Server • Adaptive Server Enterprise • Teradata Database • Firebird • PostgreSQL • MySQL • SQLite • Microsoft Access • Visual FoxPro • ЛИНТЕР • CouchDB • MongoDB |
Компоненты | Язык запросов • Оптимизатор запросов • План выполнения запроса • ODBC • ADO • ADO.NET • JDBC |