SELECT symbol
FROM trades
PREWHERE type = 'SPOT'
GROUP BY symbol
)
┌─count()─┐
│ 764 │
└─────────┘
1 rows in set. Elapsed: 27.835 sec. Processed 3.29 billion rows, 7.63 GB (117.97 million rows/s., 273.90 MB/s.)
против
SELECT uniq(symbol)
FROM trades
PREWHERE type = 'SPOT'
┌─uniq(symbol)─┐
│ 764 │
└──────────────┘
1 rows in set. Elapsed: 342.113 sec. Processed 3.29 billion rows, 7.63 GB (9.60 million rows/s., 22.30 MB/s.)
я сначала подумал, что дело в ПК (дистинкт не оптимизирован, групбай оптимизирован), но строк вроде одинаково... надо наверно трейсы сравнить
потому, что uniq по дефолту использует вероятностную функцию Для точного результата есть uniqExact() еще можешь попробовать count(DISTINCT symbol), но он преобразуется в uniqExact
Обсуждают сегодня