Изменение структуры большой базы mySQL

У вас есть база размером свыше 100гб и более 8млн строк. Необходимо добавить 3 новых поля, переименовать одно поле, а также добавить два индекса. Как это лучше делать?


Ответы (1 шт):

Автор решения: Chupaka

Чтобы убедиться, что база остаётся доступна - добавьте в команду ALTER параметр LOCK:

ALTER TABLE big
    ADD field1 INT DEFAULT NULL,
    ADD field2 DATETIME DEFAULT NULL,
    ADD field3 TEXT DEFAULT NULL,
    ALGORITHM=INPLACE,
    LOCK=NONE;

Если на середине процесса выдаст ошибку - возможно, придётся увеличить значение параметра innodb_online_alter_log_max_size у MySQL и повторить попытку.

→ Ссылка