184 похожих чатов

Привет, подскажите, есть таблица с колонками: дата, идентификатор пользователя. Как

ее положить в КХ так, чтобы оптимизировать запросы на подсчет числа уников по дням? Я попробовал сделать таблицу с партицией по дням, ключом (дата, идентификатор), потом надстроил распределенную таблицу с датой в ключе шардирования, вот код: https://pastebin.com/TRX9qjrN

Заполнил случайными 20млн строками, при запросе https://pastebin.com/5R0iQpZS отрабатывает за 0.569 сек, а на отдельном хосте за 0.034 сек. Почему такая разница? Есть ощущение, что КХ не использует знание того, что можно параллельно все рассчитать и делает какую-то лишнюю работу. Если вместо uniqExact посчитать max, то на распределенной таблице отработает за 0.033 сек, на отдельном хосте за 0.014, тут похоже на то, что все оптимально

Во время запросов не чистил кеш, как правильно это делать? Может ли он тут повлиять на скорость в случае max?

10 ответов

18 просмотров

Я совсем не эксперт, но поч у вас нету ORDER BY?

uniqExact тянет весь Стейт уников на один хост. Возможно, такая "задержка" из за передачи по сети

Исаак-Калинкин Автор вопроса
Andrei K
uniqExact тянет весь Стейт уников на один хост. Во...

спасибо! А нет идей как оптимизировать? чтобы не стейт тянулся, а конечный результат уже

Исаак-Калинкин Автор вопроса
Dmitry [Altinity] Titov
Шардировать по колонке из юник стейта

То есть, в данном случае по device_id? А не по групбайному fielddate

Andrei K
КХ умеет понимать шардирование?

Да, там правда нужно включать разные настройки

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта