sql >> Base de Datos >  >> RDS >> Mysql

MySQL ALTER TABLE en una tabla muy grande:¿es seguro ejecutarlo?

Como acabo de leer, el ALTER TABLE ... ORDER BY ... query es útil para mejorar el rendimiento en ciertos escenarios. Me sorprende que el índice PK no ayude con esto. Pero, desde los documentos de MySQL , parece que InnoDB utiliza el índice. Sin embargo, InnoDB tiende a ser más lento que MyISAM. Dicho esto, con InnoDB no necesitaría volver a ordenar la tabla, pero perdería la increíble velocidad de MyISAM. Todavía puede valer la pena intentarlo.

Por la forma en que explica los problemas, parece que hay demasiados datos cargados en la memoria (¿quizás incluso se está intercambiando?). Puede verificarlo fácilmente al monitorear el uso de su memoria. Es difícil decirlo porque no conozco muy bien MySQL.

Por otro lado, creo que su problema radica en un lugar muy diferente:está utilizando una máquina con solo 512 megas de RAM como servidor de base de datos con una tabla que contiene más de 4 millones de filas... Y está realizando un trabajo con mucha memoria. operación en toda la tabla en esa máquina. Parece que 512 Megs no serán suficientes para eso.

Un problema mucho más fundamental que estoy viendo aquí:está haciendo desarrollo (y muy probablemente también probando) en un entorno que es muy diferente al entorno de producción. El tipo de problema que está explicando es de esperar. Su máquina de desarrollo tiene seis veces más memoria que su máquina de producción. Creo que puedo decir con seguridad que el procesador también es mucho más rápido. En ese caso, le sugiero que cree una máquina virtual que imite su sitio de producción. De esa manera, puede probar fácilmente su proyecto sin interrumpir el sitio de producción.