датасет для тестов https://clickhouse.com/docs/en/getting-started/example-datasets/amazon-reviews. Использовал клик-облако.
Посчитал кол-во уников в поле 3мя запросами:
1) SELECT
count(distinct product_category)
from amazon_reviews
2) select
count()
from (
SELECT
product_category
from amazon_reviews
GROUP BY product_category
)t1
3) SELECT
uniq(product_category)
from amazon_reviews
Так же приложил скрины с оценкой времени(при разных запусках не сильно отличается). Почему второй запрос работает быстрее? Если есть в доках описанный момент - буду благодарен за ссылку
ну ... для начала было бы не плохо результаты на clickhouse-client показать во вторых, второй запрос может работать значительно быстрее после первого. потому что вся колонка product_category фактически подтягивается в linux page cache так что у вас явно проблемы с замерами
1. почему нужно сначала на клиенте посмотреть рез-ты? 2. пробовал перезайти на консоль облака и ребут компа. пробовал 2й запрос так же запустить первым
1. на клиенте запущеном на том же сервере, чтобы быть уверенными что сетевые задержки не влияют 2. смотрите system.query_log для ваших запросов в ProfileEvents поле... смотрите по каким событиям разница больше всего
ответы здесь https://kb.altinity.com/altinity-kb-queries-and-syntax/distinct-vs-group-by-vs-limit-by/
Обсуждают сегодня