Поиск по предикату в колоночных СУБД

Упрощённо таблицу, хранящую данные поколоночно можно представить как отдельный файл под каждый столбец (поправляйте, если не прав), что позволяет эффективнее работать запросам, которые возвращают лишь несколько столбцов, читаю только их (а не всю строку, как в row-формате).

Но как работает поиск по предикатам в таких ситуциях?

Запрос формата select t.col1 from Table as t where t.col1 > 10 мне понятен, просто проверка условия.

Но как работает запрос формата select t.col1 from Table as t where t.col2 > 10 ? как обеспечивается связь значений col2 и col1 ? Это что-то в духе "50-ое значение col2 удовлетворяет условию - возьми 50-е значение col1 и верни пользователю" ?

Вероятно, для разных СУБД ответ может разниться - меня базово устроит ответ для любой системы. Если он также будет актуален для Greenplum - будет здорово.


Ответы (0 шт):