Как часто бывает, словам «columnar database» или «
Большинство современных реляционных баз данных являются «строчными», то есть данные, хранящиеся в базе данных в виде таблицы, со строками и столбцами, записываются на диск построчно.
Как вы, вероятно знаете, самая «дорогая» в плане быстродействия операция, которую совершает жесткий диск, это так называемый «seek» — операция позиционирования головки жесткого диска. Если данные в базе записаны на диск построчно, то как правило за чтение одного блока, будет считана вся строка с данными. Поэтому при построчной записи данных, минимизируется время на чтение одной записи в базе данных о
В итоге мы имеем, что строчные базы данных более эффективно работают, когда сценарий работы с данными как правило требует частой работы с отдельными записями, например введение данных, просмотр, изменение.
Но строчные базы данных начинают испытывать проблемы с быстродействием, когда необходимо провести
Чтобы улучшить эффективность работы над такими задачами, в большинстве баз данных применяют так называемые индексы, в которых хранятся все значения
Развитием идеи индексов и стали столбцовые базы данных, в которых данные записываются на диск по столбцам. Таким образом для многих запросов типа «найти всех людей, с
Хотя эффективность базы данных разных типов (строчной или столбцовой) очень сильно зависит от задач и типичных сценариев их использования, можно утверждать, что как правило:
Столбцовые базы данных более эффективны в случаях, когда часто требуется вычислять
Строчные базы данных более эффективны в случаях, когда часто требуется извлекать данные по строкам целиком, например — извлекая карточки клиентов для работы с ними менеджеров.
Иными словами, в тех случаях, когда основное предназначение базы данных — это
Если вас заинтересовала эта тема для дальнейшего изучения, то например, вот здесь можно найти список столбцовых баз данных, которые существуют в мире. Список, вероятно, не является исчерпывающим, но вы можете найти там решения для своих экспериментов с таким типом базы данных.