Voy a convertir todas las tablas de la base de datos de 500 MB de MyISAM a InnoDB para ver si mejorará el rendimiento general de un sitio ocupado de Drupal 6. Me pregunto cuál es la mejor manera (es decir, la más segura / más fácil / más rápida) de realizar la conversión.
9
Respuestas:
Como MySQL DBA, confío en MySQL para hacer la conversión haciendo que MySQL escriba el script por mí.
Forma el comando Linux ejecuta esta consulta
El script convertirá primero las tablas más pequeñas. Este script también omitió las tablas MyISAM que tienen índices FULLTEXT.
Después de revisar el script, simplemente puede ejecutarlo en MySQL de la siguiente manera:
o si desea ver el momento de cada conversión, inicie sesión en mysql y ejecute esto:
Esto no debería estropearse porque se produce un bloqueo completo de la tabla cuando se ejecuta la conversión.
Una vez que se convierten todas las tablas, debe ajustar la configuración de MySQL para el uso de InnoDB y reducir el key_buffer.
Lea esto para configurar el InnoDB Buffer Pool: /dba/1/what-are-the-main-differences-between-innodb-and-myisam/2194#2194
Lea esto también: /drupal/1715/what-would-the-optimal-mysql-configuration-for-a-drupal-7-site-be/2367#2367
Darle una oportunidad !!!
fuente
He escrito un comando drush para esto hace un tiempo.
Trabajó para mí hace aproximadamente un año, no estoy seguro de si la API drush cambió desde entonces.
Puede colocarlo en un convert.drush.inc, por ejemplo, en la carpeta .drush o ejecutarlo de alguna manera en su sitio, por ejemplo, con el bloque de ejecución de desarrollo php. Como script drush, puedes llamarlo así:
Advertencia : si alguien hace algo con la base de datos mientras se ejecutan estos comandos, su base de datos estará completamente desordenada. Irrecuperablemente. Por lo tanto, ponga su sitio en modo de mantenimiento y haga una copia de seguridad antes de intentar esto. Y, por supuesto, primero prueba en un sitio de desarrollo / prueba :)
fuente