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

Можете подсказать, после обновления кликхауса, простые запросы,.которые раньше отрабатывали, стали

выдвать переполнение памяти, в чем может быть проблема?
DB::Exception: Memory limit (for query) exceeded: would use 9.49 GiB

26 ответов

9 просмотров

For example, which queries?

L-dar- Автор вопроса
Yuran
For example, which queries?

SELECT DISTINCT id,user_id, FROM request WHERE event_type = 'bid' and id IN ('238862824074244635', '238856329183581358', '238847979799178464', '238845048900672098', '238842809361202089', '238809601308967527', '238775717847339988') AND cr_id IS NOT NULL AND created_ts > 1621582193;

L-dar
SELECT DISTINCT id,user_id, FROM request WHERE ev...

Есть подозрение, что просто поправили подсчет потребления памяти для таких запросов

L-dar- Автор вопроса
Yuran
Есть подозрение, что просто поправили подсчет потр...

а на какой параметр нужно обратить внимание?

L-dar
а на какой параметр нужно обратить внимание?

Вы делаете SELECT DISTINCT, поэтому без попадания в индекс (а Вы вроде не используете индекс) серверу нужно все важные колонки держать в памяти на протяжении всего запроса

L-dar- Автор вопроса
Yuran
Вы делаете SELECT DISTINCT, поэтому без попадания ...

у меня есть индекс, как раз во where эта колонка используется

L-dar- Автор вопроса
Yuran
Вы делаете SELECT DISTINCT, поэтому без попадания ...

и почему без попадания в индекс, как определили?

L-dar
у меня есть индекс, как раз во where эта колонка и...

Реалистично, только первая колонка может использоваться, потому что id последняя в составном индексе, маловероятно, чтобы ClickHouse её мог использовать для запроса. Но я не об этом. Я о том, что для эффективного удаления дублей в DISTINCT выбираемые колонки в DISTINCT тоже должны быть в индексе, причем подряд, например такой запрос в теории может не держать всё в памяти, с Вашей структурой таблицы: SELECT DISTINCT sp_id, c_id FROM tbl WHERE event_type = 'ololo'

L-dar- Автор вопроса
Yuran
Реалистично, только первая колонка может использов...

Без DITINCT тоже не работает.... Насчет индексов т.е. все колонки которые есть в индексе, они должны присутсвовать во WHERE. Но если колонка во WHERE не указана, которая стоит сама первая, то след колонки не будут учитываться в индексе запроса? Я правильно понимаю

L-dar- Автор вопроса
Yuran
Реалистично, только первая колонка может использов...

Где можно подробно насчет этого почитать?

L-dar
Без DITINCT тоже не работает.... Насчет индексов т...

Если без DISTINCT тоже выдаёт ошибку по памяти, то это уже интереснее :). Возможно, ClickHouse все-таки пытается использовать индекс, но кусок с фиксированным event_type не влезает целиком в память? Интересно посмотреть на план исполнения в логах сервера

L-dar- Автор вопроса
Yuran
Если без DISTINCT тоже выдаёт ошибку по памяти, то...

Еще одна важная тонкость, диапазон захватывает две партиции.

L-dar- Автор вопроса
L-dar
Насчет плана, это EXPLAIN?

Если EXPLAIN уже поддерживается в ClickHouse?

L-dar
Насчет плана, это EXPLAIN?

Вероятно тогда EXPLAIN PLAN

min_bytes_to_use_mmap_io = 0 https://github.com/ClickHouse/ClickHouse/issues/24505

Yuran
Если EXPLAIN уже поддерживается в ClickHouse?

https://clickhouse.tech/docs/en/sql-reference/statements/explain/

L-dar
Где можно подробно насчет этого почитать?

ClickHouse сортирует данные в порядке возрастания первичного ключа, поэтому, как и для обычного составного индекса в традиционных СУБД, гарантируется адекватная производительность только при поиске по точному совпадению префикса индекса, то есть col1 = 'A' AND col2 = 'B' и т.д. Любые другие запросы могут тоже работать, и в ClickHouse вроде как полно таких оптимизаций, то есть можно пропускать колонки, если кардинальность не слишком высокая, но расчитывать на это я бы не стал, особенно если характер данных может меняться.

L-dar- Автор вопроса
L-dar- Автор вопроса
Yuran
ClickHouse сортирует данные в порядке возрастания ...

Спасибо, уложилось у голове теперь

L-dar- Автор вопроса
Denny [Altinity]
min_bytes_to_use_mmap_io = 0 https://github.com/C...

Эту настройку можно просто в конфиге добавить, смотрю там нет такого параметра?

L-dar
Эту настройку можно просто в конфиге добавить, смо...

cat /etc/clickhouse-server/users.d/min_bytes_to_use_mmap_io.xml <?xml version="1.0"?> <yandex> <profiles> <default> <min_bytes_to_use_mmap_io>0</min_bytes_to_use_mmap_io> </default> </profiles> </yandex>

L-dar- Автор вопроса
L-dar
Этот файл нужно создать?

ну да. Вы вообще про параметры и конфиги доку почитайте. и вот тут https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-server-config-files

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта