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

Коллеги, подскажите такой теоретический момент. До сих пор операция UPDATE

в CH считается тяжелой (и понятно, почему). Но тяжелой она считается на каком объеме данных? Ведь если сделать таблицу из 10 строк 10 столбцов и UPDATE чего угодно - сделает моментально. А если миллион? миллиард? триллион?

Есть ли какие то расчеты, позволяющие оценить, когда UPDATE станет убийственным? Понятно, что много зависит от партиционирования и количества изменяемых столбцов/строк, но тем не менее?

Для простоты можно принять, что только 1 stand-alone сервер.

11 ответов

22 просмотра

update для чего? я иногда заполняю поля задним числом, апдейчу больше триллиона строк, ну за сутки выполняется

Алексей-Фирсов Автор вопроса
Denny [Altinity]
update для чего? я иногда заполняю поля задним чис...

Ну у меня есть таблица (150 млн записей, около 80 столбцов), в которой иногда надо поменять значения, скажем в 50 000 строк и в 5 столбцах.... Ну прям очень надо ) Поэтому и интересует, есть ли какие нибудь синтетические тесты для предварительного анализа расчета времени выполнения подобных запросов...

Алексей Фирсов
Ну у меня есть таблица (150 млн записей, около 80 ...

ну 50 млн строк это моментально выполнится, если поля не хранят строки по огромной длины, и сгенерить такую таблицу (вам для проверки не надо 80 столбцов, достаточно orderby полей и тех которые надо проапдейтить) и проверить можно на ноутбуке в докере с 2 гигами, я уверен даже fiddle это выдержит.

Алексей Фирсов
Ну у меня есть таблица (150 млн записей, около 80 ...

используйте движок ReplacingMergeTree. Там без update можно решить

Bobur Usenov
используйте движок ReplacingMergeTree. Там без upd...

Я так и сделал. В конечном итоге. Но можно вместо join использовать sum( union). Теоретически получим тоже самое

Алексей-Фирсов Автор вопроса
Bobur Usenov
используйте движок ReplacingMergeTree. Там без upd...

Нельзя. У меня по задаче нужно считать обязательно количество записей в таблице. Если делать replacing, то пока данные схлопываются, будут дубли и конечное количество будет неверным. А вечно FINAL пихать в запросы, мне кажется, не самый лучший вариант....

Алексей Фирсов
Нельзя. У меня по задаче нужно считать обязательно...

А над replacing повесить argMaxState. Собственно, из похожей задачи у меня вопрос вылез

Алексей Фирсов
Нельзя. У меня по задаче нужно считать обязательно...

можно по другому. версионность завести (например date или version) select будете делать по max( version или date)

Алексей-Фирсов Автор вопроса
Bobur Usenov
можно по другому. версионность завести (например d...

Тогда частые группировки будут в каждом запросе.. Мне кажется, это сильно напряжет и так не слишком серьезный сервер, особенно если запросов будет довольно много одномоментно...

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

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

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