UInt64, документация по ALTER по этому поводу какая-то неоднозначная, вроде написано
When changing the type, values are converted as if the toType functions were applied to them. If only the default expression is changed, the query does not do anything complex, and is completed almost instantly.
при этом написано
Changing the column type is the only complex action – it changes the contents of files with data. For large tables, this may take a long time.
Подскажите как оно на самом деле происходит?
а где тут противоречие? если меняете только значение DEFAULT — будет быстро, есть меняете значения в колонках — к ним применяется toType и файл колонки переписывается
По диагонали прочитал. Понял, спасибо. А если поменять тип то вставляемые новые данные во время конвертирования старых уже будут ложиться в UInt64 ?
я бы не рисковал вставлять новые данные, пока мутация во всех партах не отработает
Да вроде бы делаем так, но в случае с MATERIALIZE COLUMN
не понял при чем тут Materialize проблемы при modify column будут скорее с select, чем с insert
там сказали про мутации, materialize тоже мутация
ну modify column будет ждать на каждом парте пока он обработается предыдущей мутацией.
я правильно понимаю что если не останавливать инсерты то изменение типа может себя непредсказуемо вести на селектах из этой таблицы?
Нет, инсерты тут ни при чем. Некоторые селекты упадут потому что типы этой колонки в партах отличаются
Обсуждают сегодня