Punto muerto de MySQL: agregar columnas

Punto muerto de MySQL: agregar columnas

El otro día tuve un problema desagradable con MySQL. Agregué dos columnas nuevas a la tabla 'Promociones' (13 columnas existentes, ~750 registros) usando la interfaz PHPMyAdmin. Esta consulta ("ALTER TABLE.....") nunca se ejecutó por completo y bloqueó la tabla, por lo que cada consulta posterior a 'Promociones' se colgaría y se pondría en cola. Me tomó aproximadamente una hora darme cuenta de que esto estaba sucediendo y el problema se resolvió reiniciando mi base de datos.

¿Existen precauciones estándar que deban tomarse y problemas conocidos que surjan al alterar los esquemas de la base de datos? Nunca antes había visto este tipo de bloqueo.

Respuesta1

Considere el siguiente escenario para ALTERAR una tabla MySQL más fácilmente, especialmente en un entorno de producción:

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

También te puede interesarMESAS ENRASADASyDESBLOQUEAR MESASsobre la documentación.

Editar: Existen soluciones alternativas para resolver este problema comopt-cambio-de-esquema-en-lineaherramienta de Percona.

información relacionada