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

Подскажите, как можно ускорить выборку из SummingMergeTree? В сутки примерно

+1 млрд записей в таблицу. ORDER BY достаточно большой, поэтому задал PRIMARY KEY по первым двум полям (типы DateTime и IPv4), т.к. выборка по ним идёт больше всего.
Знаю, что можно добавить индексов в таблицу, но не особо помогают. Может, я их неправильно готовлю, не пойму.
В среднем, запросы выполняются от 4-5 секунд, в зависимости от выбранного интервала времени. Почему грешу на индекс - вижу в SELECT count(), что вытаскивается 150 тысяч строк, а в запросе Processed 5.21 million rows, т.е. индекс явно не используется.

11 ответов

36 просмотров

нужны детали, например ДДЛ таблицы и запрос

Казанский- Автор вопроса
【D】【J】
нужны детали, например ДДЛ таблицы и запрос

Около 10 колонок, ORDER BY включает 8 колонок, кроме двух, по которым собирается аггрегация. PRIMARY KEY строю по DateTime и IPv4 (тип колонки). Исходные данные забираю из "большой" таблицы на 35 колонок, которая MergeTree.

Казанский
Около 10 колонок, ORDER BY включает 8 колонок, кро...

т.е. вы выстрелили себе в ногу положив DateTime первым в индекс?

Dmitriy S
А можете уточнить, чем это плохо?

Тем, что у вас идёт фулл скан таблицы при любом запросе

Константин
Тем, что у вас идёт фулл скан таблицы при любом за...

либо явно указывать рамки, чтобы сканил только одну партицию?

Dmitriy S
либо явно указывать рамки, чтобы сканил только одн...

Я ошибся, фулл скан партиций в которые попадает WHERE dateTime

Константин
Я ошибся, фулл скан партиций в которые попадает WH...

а это будет в свежих версиях КХ поправлено? 😱

Казанский- Автор вопроса
Denny [Altinity]
т.е. вы выстрелили себе в ногу положив DateTime пе...

А там DateTime с 10-минутными интервалами, то есть в одно такое значение DateTime мы получаем несколько млн строк, поэтому он и в индексе. Я не пойму, почему кликхаус в выборку берёт слишком много строк, индекс по DateTime-то есть.

Казанский
А там DateTime с 10-минутными интервалами, то есть...

там все очень тупо и надежно работает и там все очевидно. но всплепую, без конкретики это не объяснить

Казанский- Автор вопроса
Denny [Altinity]
там все очень тупо и надежно работает и там все оч...

А где можно почитать про работу индексов подробнее?

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта