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

Уменьшение гранулярности индекса для ReplicatedMergeTree (в крайнем случае до 1)

ведет к падению производительности запросов на сканирование (1.2 миллиона записей). Это как-то меняется внутри формат хранения данных?

9 ответов

11 просмотров

если индексы не помогают, то меняйте order by, если он уже оптимален для основного кейса, но для второстепенных - нет и не получится, то юзайте проекции. https://clickhouse.tech/docs/ru/engines/table-engines/mergetree-family/mergetree/#projections

sdev-E Автор вопроса
Vladimir Goncharov
если индексы не помогают, то меняйте order by, есл...

Для одних и тех же запросов и данных изменение гранулярности рушит производительность на сканирование. Т.е. с 800 QPS при гранулярности в 8192, до 64 при 1. Но данные те же и запросы те же.

sdev E
Для одних и тех же запросов и данных изменение гра...

Ну вам надо в 8 тысяч раз чаще читать, конечно будет медленно

sdev-E Автор вопроса
Konstantin Ilchenko
Ну вам надо в 8 тысяч раз чаще читать, конечно буд...

Сканирование идет всей таблицы в любом случае, это фул скан. Гранулярность меняет как-то формат хранения данных?

sdev E
Сканирование идет всей таблицы в любом случае, это...

данные отдельно, индексы отдельно, индексы сбоку и не влияют на хранение данных

sdev-E Автор вопроса
Vladimir Goncharov
данные отдельно, индексы отдельно, индексы сбоку и...

Ну индексу может надо куда-то указывать, что распаковано и лежит отдельно. Просто мысли вслух.

sdev E
Ну индексу может надо куда-то указывать, что распа...

то что вы описали называется проекции, а не индексы :)

sdev E
Ну индексу может надо куда-то указывать, что распа...

Мне казалось primary key всегда используется, даже при seq scan, но возможно я не прав

sdev E
Ну индексу может надо куда-то указывать, что распа...

Попробуйте send_logs_level = 'trace' и посмотреть что читает

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта