1

У меня была неприятная проблема с MySQL, возникшая на днях. Я добавил два новых столбца в таблицу «Акции» (13 существующих столбцов, ~ 750 записей) с помощью интерфейса PHPMyAdmin. Этот запрос («ALTER TABLE .....») никогда не выполнялся полностью и не блокировал таблицу, так что каждый последующий запрос к «Promotions» зависал и ставился в очередь. Мне потребовалось около часа, чтобы понять, что это происходит, и проблема была решена путем перезагрузки базы данных.

Существуют ли стандартные меры предосторожности, которые необходимо принять, и известные проблемы, возникающие при изменении схем базы данных? Я никогда не видел подобного рода блокировки раньше.

1 ответ1

0

Рассмотрим следующий сценарий, чтобы изменить таблицу MySQL более плавно, особенно в производственной среде:

1. CREATE tmp_table LIKE original_table
2. ALTER tmp_table..
3. INSERT INTO tmp_table SELECT * FROM original_table
4. RENAME original_table to orginal_table_old
5. RENAME tmp_table to original_table
6. DROP original_table_old

Также вас могут заинтересовать FLUSH TABLES и UNLOCK TABLES по документации.

Изменить: Существуют альтернативные решения для решения этой проблемы, как инструмент pt-online-schema-change от Percona.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .