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

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

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

11 ответов

19 просмотров

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

Казанский- Автор вопроса
【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]
там все очень тупо и надежно работает и там все оч...

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

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

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

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Всем привет! Использую gitlab-ci. Настроил gitlab-agent для деплоя в куб. При деплое проекта в логах такая ошибка: Executing deploy plan failed to watch "ns:my-project/Ingress...
Konstantin Moiseev
4
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
а не подскажете вот это скрин из какой IDE ?
Iluha Companets
14
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Народ всем привет Подскажите, как включить самописные dll библиотеки в итоговую сборку Сейчас при запуске dev сервера локально формируется папка build, из которой запускается...
Андрей
4
Карта сайта