Una de las razones mayores por la cual los sitios WordPress a gran escala van más lento es que no se ha optimizado la base de datos. Muchos sitios antiguos todavía usan el motor de almacenamiento MyISAM en su base de datos. En los últimos años InnoDB ha demostrado ser más eficaz y más confiable. Una razón para usar InnoDB en lugar de MyISAM, es la falta del bloqueo a nivel de tabla completo (full table-level locking). Esto permite un proceso de consultas más rápido.

InnoDB vs MyISAM

Aquí están la mayores diferencias entre InnoDB y MyISAM:

      • InnoDB tiene bloqueo a nivel de renglón (row-level locking). MyISAM sólo tiene bloqueo a nivel de tabla completo.
      • InnoDB tiene la que llaman integridad referencial que se trata de soportar claves externas (RDBMS) y restricciones, MyISAM no lo hace (DMBS).
      • InnoDB soporta transacciones, lo que significa que se puede guardar y deshacer. Con MyISAM no se puede.
      • InnoDB es más confiable al hacer registros transaccionales. MyISAM no lo es.

Usted Utiliza MyISAM o InnoDB?

Si estás ejecutando un sitio WordPress bastante nuevo, es posible que usas el motor de almacenamiento InnoDB MySQL. Pero en caso de sitios WordPress más antiguos podrías hacer un chequeo rápido. Algunos sitios pueden tener tablas MyISAM y InnoDB mezcladas y combinadas en las cuales se puede ver las mejoras, convirtiéndolas por todas partes. Siga los pasos abajo para comprobar.

Paso 1

Acceda a phpMyAdmin y haga clic en su base de datos mySQL.

Paso 2

Realice un análisis rápido en la columna «Type» y se puede ver cuál es el Motor de Almacenamiento que sus tablas están usando. En este ejemplo abajo se puede ver las dos tablas que todavía utilizan MyISAM.

encontrar-tablas-myISAM

Como alternativa, se puede ejecutar una consulta para ver si existe cualquier tabla MyISAM. Sustituya ‘database’ con el nombre de su base de datos.

SELECT TABLE_NAME,
 ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'

Convertir MyISAM en InnoDB con phpMyAdmin

Se puede convertir MyISAM en InnoDB bastante fácilmente. En este ejemplo abajo se usan la tabla wp_comments. Simplemente ejecute el comando ALTER para convertirlo en motor de almacenamiento InnoDB. Nota: Antes de realizar cualquier tipo de operaciones en su base de datos MySQL, siempre recomendamos hacer un backup sobre ello.

ALTER TABLE wp_comments ENGINE=InnoDB;
Asegúrese que está ejecutando MySQL 5.6.4 o una versión superior. En caso contrario puede tener varios problemas donde InnoDB ya no soporta full-text indexing. Si usted es cliente de Kinsta no tiene que preocuparse por ello.

Como alternativa, también se puede convertirlos manualmente con phpMyAdmin. Simplemente haga clic en la tabla MyISAM, pulse la pestaña «Operations», y cambie el motor de almacenamiento (storage engine).

Convertir MyISAM en InnoDB con WP-CLI

WP-CLI es una herramienta de comando para desarrolladores para administrar tareas comunes (y menos comunes) de una instalación WordPress. Consulte este artículo sobre la conversión de MyISAM en InnoDB con WP-CLI.