Чем отличается колоночная модель хранения данных от строковой?
Уровень: Senior
Ответ
В строковом хранилище (row-oriented) все поля записи хранятся вместе. Это удобно для операций, затрагивающих отдельные записи целиком (вставка, обновление одной записи, частое обращение к разным полям одной строки). В колоночном (column-oriented) данные хранятся по столбцам: сначала все значения первого столбца, отдельно все значения второго и т.д. Такое хранение сильно ускоряет аналитические запросы по большому числу строк, но ограниченному набору столбцов – СУБД читает только нужные колонки. Колонночное хранение также дает высокое сжатие. Итог: для OLTP-нагрузки лучше строковое (много операций с отдельными записями), для OLAP – колонночное (массовое сканирование отдельных столбцов).