Что такое «столбцовые базы данных»?

4 августа 2014
Что такое «столбцовые базы данных»?

Как часто бывает, словам «columnar database» или «column-oriented database» еще не подобрался стандартный русский перевод. Иногда говорят «столбцовая база данных», иногда встречается перевод «колончатая».

Что же такое «столбцовая база данных», и что нового в таком подходе?

Большинство современных реляционных баз данных являются «строчными», то есть данные, хранящиеся в базе данных в виде таблицы, со строками и столбцами, записываются на диск построчно.

Как вы, вероятно знаете, самая «дорогая» в плане быстродействия операция, которую совершает жесткий диск, это так называемый «seek» — операция позиционирования головки жесткого диска. Если данные в базе записаны на диск построчно, то как правило за чтение одного блока, будет считана вся строка с данными. Поэтому при построчной записи данных, минимизируется время на чтение одной записи в базе данных о каком-то объекте, например, о сотруднике, в базе сотрудников — то есть все его хранимые данные, Ф.И.О., год рождения, и так далее.

В итоге мы имеем, что строчные базы данных более эффективно работают, когда сценарий работы с данными как правило требует частой работы с отдельными записями, например введение данных, просмотр, изменение.

Но строчные базы данных начинают испытывать проблемы с быстродействием, когда необходимо провести какие-то операции со всеми данными, вместо того, чтобы извлечь какую-то одну запись. Например, для того, ч