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

Я вижу, что во всех ищет) меня интересует "почему?" я ищу

ОДНО уникальное значение в отсортированном списке; и то что список разбит на партиции - не повод искать во всех!

Получается использование партиций ОБЯЗЫВАЕТ меня всегда использовать предикат по ключу партиционирования или я теряю производительность

Или по-другому: партиционирование нивелирует эффект сортировки колонки

3 ответов

18 просмотров

потому что партиция по дате а вы по ней не ищете а ищете по id который в primary key (это не то же самое что в MySQL Primary Key) откуда по вашему CH узнает в какой партиции надо искать конкретный ID? он возьмет все партиции и будет в них паралельно искать по засечкам пока не найдет засечку в которой возможно есть ваш id, потом возьмет уже колонку id и прочитает все блоки с данной засечкой чтобы уже найти точно засечки это грубо говоря значение primary key и набор смещений в файлах колонок которые в primary key где конкретное значнеие находится

партицирование не невелирует эффект но позволяет очень быстро отфильтровать и лучше сжимать по признаку партицирования если он не имеет рандомной природы

Ну так партиционирование разбивает таблицу на много маленьких таблиц, индекс тоже на много маленьких индексов. Кх в общем-то не предназначен для поиска по ключу. Но можно и партиционировать по выражению от ключа и уменьшать гранулярность индекса что бы сканировать меньше ненужных строк в разреженном индексе.

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

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

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