Soy un desarrollador de PHP, así que no seas estricto. Tengo una gran mesa ~ 5.5 gb volcado. Nuestro primer ministro decidió crear una nueva columna para realizar una nueva función. La tabla es InnoDB, así que lo intenté:
Alterar la mesa en la pantalla con bloqueo de mesa. Tomó ~ 30 horas y nada. Entonces lo detuve. Primero cometí un error porque no terminé todas las transacciones, pero la segunda vez no fue multilock. El estado era
copy to tmp table
.Como también necesito aplicar particiones para esta tabla, decidimos hacer un volcado, cambiar el nombre y crear una tabla con el mismo nombre y una nueva estructura. Pero dump está haciendo una copia estricta (al menos no encontré otra cosa). Así que agregué para volcar una nueva columna
sed
y consultarla. Pero comenzaron algunos errores extraños. Creo que fue causado por charset. La tabla en utf-8 y el archivo se convirtieron en us-ascii despuéssed
. Entonces obtuve errores (comando desconocido '\' ') en el 30% de los datos. Entonces esta también es una mala manera.
¿Cuáles son otras opciones para lograr esto y acelerar el rendimiento (puedo hacerlo con el script php, pero tomará años)? ¿Cuál será el rendimiento INSERT SELECT
en este caso?
Gracias por cualquier avance.
SET NAMES utf8
y.COLLATION
Pero meh idk por qué el 30% de los datos se corrompió despuéssed
. Creo que la carga masiva será la más rápida, pero tal vez exista algo más que me estoy perdiendo. Gracias Mark