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

Использую официальный драйвер https://github.com/ClickHouse/clickhouse-go/ Он использует TCP протокол При сортированном запросе все

данные забивает сразу в память, а при несортированном получает пачками и не забивает.
Это стандартное поведение для TCP протокола? Есть ли пути обхода? Кто сталкивался?

8 ответов

8 просмотров

это все не так. Что такое "забивает сразу в память"

Загир-Нургалиев Автор вопроса
Denny [Altinity]
это все не так. Что такое "забивает сразу в память...

Есть 2 VIEW идентичные. несортированный и сортированный Сортированный - 500мб хипа отжирает при селекте Несортированный - 170мб

Загир Нургалиев
Есть 2 VIEW идентичные. несортированный и сортиров...

хипа? в go? в смысле на клиенте КХ или сервере КХ?

Загир-Нургалиев Автор вопроса
Denny [Altinity]
хипа? в go? в смысле на клиенте КХ или сервере КХ?

Память отжирается на клиенте, именно при запросах в сортированные view

Загир Нургалиев
Память отжирается на клиенте, именно при запросах ...

это странно, разница только в том с какой интенсивностью КХ возвращает. Просто для сортированного результата ответ возвращается целиком, а для не сортированного стримится, но клиенту должно быть пофиг. Может в го драйвере можно размер блока возвращаемого настроить?

Загир-Нургалиев Автор вопроса
Denny [Altinity]
это странно, разница только в том с какой интенсив...

Подебажил немного, он при чтении берет размер блока из TCP ответа похоже, При сортированном запросе размер блока 65505, соответственно целиком читает 65к записей в память. откуда может браться это число? Может какая настройка на стороне КХ?

Загир Нургалиев
Подебажил немного, он при чтении берет размер блок...

max_block_size можно поменять для сессии, профиля, запроса

Загир Нургалиев
Подебажил немного, он при чтении берет размер блок...

в общем-то в 99% случаев КХ возвращает блоки по 65505 строк и оперирует внутри себя тоже, раньше было 65536 но выяснилось что перформанс при 65505 в среднем выше из-за каких-то оверхедов.

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

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

Какой-то там пердун в 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 подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта