Stephen Brobst, a founder and managing partner at Strategic Technologies & Systems
E-mail:
Owen Roberston, a senior DBA at Tanning Technoology Corp.
E-mail:
В статье приводится обзор критических проблем, связанных с
администрированием сверхбольших баз данных (VLDB - Vary Large
DataBases), таких как управление производительностью и достижение
высокого уровня доступности. Кроме того, обсуждаются роль
стратегии индексации, оптимизаторы запросов, параллельная
обработка, масштабируемость, трехуровневые архитектуры. В
заключение описывается, как некоторые лидирующие РСУБД
поддерживают работу со сверхбольшими базами данных.
Единственным способом эффективного управления таблицами,
содержащими миллионы строк, является использование какой-либо
формы разделения данных. Для разделения используются три основных
метода: разделение на основе хэширования, разделение в
соответствии с диапазонами значений ключа и циклическое
разделение (round-robin). При использовании разделения на основе
хэширования DBA (DataBase Administrator) должен выбрать один или
несколько столбцов из каждой таблицы для использования в качестве
исходных данных для хэш-функции, результирующее значение которой
определяет, в каком разделе базы данных будет храниться данная
строка таблицы. Хорошая хэш-функция должна быть эффективной и
удовлетворительно балансирующей распределение данных между
разделами. При разделении данных в соответствии с диапазонами
значений ключа строки данных таблицы помещаются в раздел базы
данных исходя из заранее приписанного к этому разделу диапазону
значений ключа. В некоторых базах данных требуется, чтобы такого
рода разделение выполнялось только для первичного (уникального)
ключа. Для больших таблиц в качестве ключа разделения часто
используется столбец временной метки. Циклическое разделение
данных организуется самым простым образом - все разделы
связываются в циклически связанную цепочку, и следующая строка
таблицы помещается в следующий раздел.