Как работает ALTER в Postgresql?

Я перебираюсь с PHP+MySQL на Python+Postgres и у меня есть 2 вопроса.
В Mysql прямо в официальной документации рекомендовано отказаться от ALTER т.к. это увеличивает нагрузку на сервер, т.к. добавление альтером там столбцов происходит путем "приклеивания" еще одной таблицы. У меня был скрипт который копировал таблицу, удалял ее, создавал по новой и возвращал информацию на место. В Постгресе много что делается альтером с главной базой, но из недостатнов написано только что столбцы при удалении не освобождают место а просто скрываются, а данные надо убивать вакуумом. Теперь собственно вопросы:
1. Таблица после альтера и вакуума освобождается от удаленных столбцов, или они просто скрываются от операторов и очищаются от данных?
2. При добавлении столбцов изменяется сама таблица и ее структура, как если мы мы ее пересоздали, или как и в mysql тоже идет что-то вроде join?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Насколько я понимаю, при

Насколько я понимаю, при удалении и даже обновлении данных в таблице, в ней остаются скрытые строки, которые удаляются VACUUM. Ничего по поводу такой странной реализации ALTER, которая сделана в MySQL, в PostgreSQL я не слышал - насколько мне известно, тут всё сделано прямо и честно.

Да, наверное я что-то

Да, наверное я что-то напутал. Сейчас читаю на сайте MySQL что таблицы копируются и удаляются при Альтер. Наверное что-то напутал. Спасибо.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023