Mysql RDS с 3 миллионами записей не позволяет добавить новый столбец - PullRequest
0 голосов
/ 16 мая 2018

Привет, у меня есть сервер базы данных mysql rds, и одна из моих таблиц имеет 3 million+ записей, когда я пытаюсь добавить новый столбец, он всегда терпит неудачу и выдает следующую ошибку

Запрос ALTER TABLE user_notifications ADD program_id int(11);

Ошибка Temporary file write failure.

Мой экземпляр БД RDS: db.t2.medium

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

ALTER TABLE - это пересоздание таблицы, поэтому две копии таблицы будут существовать в системе на каком-то этапе процесса.

Итак, для этой операции вам потребуется свободное пространство размером более data length.

Вы можете проверить data length в таблице информации.

Существует это альтернативное решение , в котором вы создаете новую таблицу с новой требуемой схемой и перемещаете данные из старой таблицы в новую таблицу порциями.

0 голосов
/ 16 мая 2018

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

Я подозреваю, что таблица велика, поскольку в ней 3 миллиона записей и ваш дискнедостаточно места

В этой статье показано, как определить, сколько дискового пространства используют таблицы

...