Вандал (танкер)
- 1 year ago
- 0
- 0
Секционирование ( англ. partitioning) — разделение хранимых объектов баз данных (таких как таблиц , индексов , материализованных представлений ) на отдельные части с раздельными параметрами физического хранения. Используется в целях повышения управляемости, производительности и доступности для больших баз данных.
Возможные критерии разделения данных, используемые при секционировании — по предопределённым диапазонам значений, по спискам значений, при помощи значений хеш-функций ; в некоторых случаях используются другие варианты. Под композитными (составными) критериями разделения понимают последовательно применённые критерии разных типов.
В отличие от сегментирования , где каждый сегмент управляется отдельным экземпляром СУБД, и используются средства координации между ними (что позволяет распределить базу данных на несколько вычислительных узлов), при секционировании доступ ко всем секциям осуществляется из единого экземпляра СУБД (или симметрично из любого экземпляра кластерной СУБД, такого, как Oracle RAC ).
Секционирование реализовано во многих реляционных СУБД , среди таковых — IBM DB2 , Informix , Oracle Database , Teradata Database , Microsoft SQL Server , PostgreSQL , MySQL , Adaptive Server Enterprise .
В различных СУБД возможности реализации несколько различаются. В частности, в Oracle Database поддерживаются следующие методы:
Также в Oracle Database существует три типа секционированных индексов:
В Informix секционирование называется фрагментацией (framentation), и также позволяет разбивать таблицы и индексы на отдельные фрагменты по разным схемам:
В MySQL начиная с версии 5.1 поддерживает следующие типы секционирования :