из WHERE для каждой part и переписывает те записи которые соответстуют запросу?
Так же вопрос по оптимизации перформанса для ALTER TABLE - у меня есть большой (40 тыс пользователей) разреженный (буквально по 2-3 в группе) список пользователей который нужно почистить, например (user_id >= 100 & user_id =< 102) OR (user_id >= 104 & user_id =< 105). Если все это объединять через OR то все в один ALTER TABLE не влезает. Приходится создавать несколько мутаций подряд. Все записи которые надо почистить находятся в рамках одного месяца (по которому нет активных инсертов), но все мутации выполняются очень долго (в-целом активность по КХ кластеру в это время суток очень маленькая).
Я запустил простой SELECT с подобным условием он выполнялся очень долго - наверняка из-за этого сложного списка пользователей. Можно ли как-то оптимизировать подобный запрос? Может всех пользователей для которых надо выполнить мутацию в отдельную временную таблицу и подзапросом проверять на наличие в таблице?
да, табличку с нужными user_id и потом alter .. where in (select ... ) если нужен update то сверху словарь (на табличку) (или использовать табличку с движком JOIN) и dictGet / joinGet
Обсуждают сегодня