Причины: 1) колоночное хранение - читаются только нужные колонки; 2) сильное сжатие однородных данных в колонке; 3) векторизация (обработка блоками, SIMD); 4) параллельное выполнение на всех ядрах. Запросы сканируют много строк, но мало колонок.