Я помогаю запустить довольно большой веб-сайт электронной почты, поскольку мы сталкиваемся с проблемами добавления полей в таблицы InnoDB из-за размера наших данных.Добавление новых полей в большую базу MYSQL
Его даже не «тот» большой ... смотрящий около 385 000 строк, размером 500 МБ, но теперь, когда мы добавляем новое поле, вся таблица блокируется, и я оставил ее бежать, пока я осмеливаюсь, но после того, как он заблокировал его, запрос на реальном сайте. Это также вызывает «блокировку метаданных» по другим запросам.
Его работа на достойном сервере, и хосты говорят, что это всего лишь одна из тех вещей, в которой он делает то, что (MYSQL) предназначен для этого.
Итак, моя идея не работает, чтобы создать новую таблицу с изменениями в полях, а затем импортировать данные, но я не очень доволен этим как решение, так как это означает, что мы не могли бы срочная разработка в течение дня, если потребуется.
Есть ли у кого-нибудь идеи о том, как обойти это, пожалуйста?
спасибо.
EDIT:
Спасибо за ответы до сих пор ребята, чтобы ответить на некоторые из вопросов;
1) «Дев работают на живом сайте?» - У нас есть среда разработки, но рано или поздно вам нужно внести эти изменения в жизнь! Это то, что я имел в виду.
2) «Дублирование работы MYSQL?» - из других поисков в Google было предложено хорошее решение для создания пустой таблицы, внесения изменений в нужные вам поля, а затем повторного импорта старых данных (затем отбросить старую таблицу). Не уверен, что это быстрее/лучше, чем просто позволить MYSQL разыгрывать создание таблицы tmp?
3) @Uueerdo - его довольно простая настройка, таблица InnoDB с ключами. Его таблица, в которой хранятся все заполненные детали корзины клиентов (у нас есть плавающая таблица для текущих заказов) и постоянно обращается к ней (добавляются новые записи, проверяются заказы на обслуживание клиентов, отслеживание клиентов и т. Д.). Мне нужно добавить 4-5 новых полей в эту таблицу, и когда я передаю «ALTER», он просто блокирует таблицу и, следовательно, запускает очереди над вышеупомянутыми запросами, которые нуждаются в этих данных.
В дополнение к тому, что Богдан Бурим, еще одна вещь, чтобы ускорить процесс обновления, который мы делаем в нашем корпусе, заключается в том, чтобы сделать новые поля обнуляемыми, когда мы можем. Это значительно ускоряет работу MS SQL Server. –
«... поскольку это означает, что мы не смогли выполнить срочную работу по разработке в течение дня, если потребуется». Вы выполняете разработку на реальном сервере ?! – Uueerdo
Также, какова ваша текущая структура и какие изменения вы пытаетесь сделать? И как долго «пока я осмелюсь»? – Uueerdo