🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo optimizar el rendimiento de MySQL en DirectAdmin para WordPress

Actualizado el 27 de enero de 2026

Introducción: ¿Por qué tu WordPress va lento aunque tengas buen hosting?

Si tienes una web en WordPress, probablemente has llegado hasta aquí porque tu sitio tarda en cargar, el panel de administración se congela o simplemente quieres sacarle más partido a tu servidor. Uno de los principales culpables de la lentitud no es tu conexión ni tu plantilla, sino la base de datos MySQL. Cuando WordPress realiza muchas consultas a la base de datos y esta no está bien configurada, el servidor se satura y las páginas tardan una eternidad en mostrarse.

La buena noticia es que no necesitas ser un experto en sistemas para mejorar esto. En este artículo te voy a explicar, paso a paso y con un lenguaje muy sencillo, cómo optimizar mysql directadmin para que tu WordPress vuele. DirectAdmin es uno de los paneles de control más utilizados en hosting compartido y VPS, y aunque su configuración por defecto es correcta, está pensada para ser genérica. Con unos pocos ajustes, puedes adaptarla a las necesidades reales de tu web.

Vamos a centrarnos en aspectos prácticos: desde entender qué come MySQL, hasta tocar los archivos de configuración y activar cachés. No te asustes, todo lo que te voy a contar es seguro y reversible. Eso sí, te recomiendo que hagas una copia de seguridad antes de empezar.

¿Qué es MySQL y por qué afecta tanto a WordPress?

MySQL es el motor de base de datos que usa WordPress para guardar todo: entradas, páginas, comentarios, usuarios, opciones de configuración y, sobre todo, la famosa tabla de opciones que se llena de transients (cachés temporales). Cada vez que alguien visita tu web, WordPress hace consultas a MySQL para obtener ese contenido. Si esas consultas son lentas o el motor está mal configurado, el tiempo de respuesta se dispara.

Cuando hablamos de wordpress rendimiento mysql, no nos referimos solo a la velocidad de carga, sino también a la capacidad de respuesta del servidor bajo picos de tráfico. Una base de datos mal optimizada puede hacer que tu web se caiga con solo 50 visitas simultáneas, mientras que una bien configurada puede aguantar miles.

Además, MySQL consume memoria RAM y CPU. Si tu servidor tiene poca memoria, y MySQL está usando parámetros demasiado altos, el sistema operativo empezará a usar el disco duro como memoria (swap), lo que es muchísimo más lento. Por eso, la optimización es un equilibrio: darle a MySQL lo que necesita, pero sin robar recursos al resto del sistema.

Antes de empezar: localiza el archivo de configuración de MySQL

En DirectAdmin, MySQL se gestiona normalmente a través del usuario mysql y el grupo mysql. El archivo de configuración principal se llama my.cnf (o my.ini en algunos sistemas) y suele estar en /etc/my.cnf o /etc/mysql/my.cnf. En muchos servidores con DirectAdmin, también puedes encontrar configuraciones en /etc/my.cnf.d/.

Para acceder a él, necesitas tener acceso SSH (raíz) a tu servidor. Si no sabes qué es SSH, te recomiendo que contactes con tu proveedor de hosting y le pidas que te aplique los cambios que te voy a comentar. Aunque también puedes usar el administrador de archivos de DirectAdmin, pero es más seguro y preciso hacerlo por línea de comandos.

Antes de tocar nada, haz una copia del archivo original:

cp /etc/my.cnf /etc/my.cnf.bak

Esto te permitirá restaurar la configuración si algo sale mal. Si tu proveedor usa un gestor de configuración, quizás tengas que pedirle permiso, pero en la mayoría de los casos puedes editarlo directamente.

Los parámetros clave para optimizar MySQL en DirectAdmin

Cuando abres el my.cnf, te vas a encontrar con una sección [mysqld]. Es ahí donde debes añadir o modificar los parámetros. No te asustes si no ves algunos de ellos, simplemente añádelos al final de la sección. Vamos a ver los más importantes para directadmin mysql config.

1. innodb_buffer_pool_size: el rey de la memoria

Este es, con diferencia, el parámetro más importante. InnoDB es el motor de almacenamiento por defecto de MySQL y este buffer es como su "memoria caché" interna. Aquí guarda las tablas y los índices más usados. Si este valor es demasiado pequeño, MySQL tiene que leer constantemente del disco, que es lentísimo.

¿Cuánto deberías poner? La regla general es entre el 50% y el 70% de la memoria RAM total de tu servidor, siempre que sea dedicada a MySQL. Por ejemplo, si tu VPS tiene 4 GB de RAM, puedes asignar entre 2 GB y 2.8 GB.

innodb_buffer_pool_size = 2G

Si tu servidor es compartido y tiene poca RAM (por ejemplo 1 GB), no pongas más de 256M o 512M, porque dejarías sin memoria al sistema operativo y a PHP.

2. query_cache_type y query_cache_size: la caché de consultas

Esta es la famosa mysql cache wordpress. Durante muchos años, MySQL tenía una caché de consultas que guardaba los resultados de las consultas SELECT. Si dos visitantes hacían la misma consulta, la segunda se servía desde la caché sin tocar las tablas.

Sin embargo, a partir de MySQL 5.7 esta caché está obsoleta y en MySQL 8.0 se eliminó por completo. Si tu versión es 5.7 o superior, te recomiendo desactivarla porque el mantenimiento de esa caché consume más recursos de los que ahorra. Si tienes una versión más antigua, puedes activarla con:

query_cache_type = 1
query_cache_size = 64M

Pero, ojo, si tu web tiene muchos escritores o se actualiza constantemente, la caché se invalida a cada momento y no sirve de nada. En ese caso, mejor ponerla a 0.

3. max_connections: cuántas conexiones simultáneas

Este parámetro define cuántas conexiones simultáneas puede tener MySQL. Si tienes un WordPress normal, con 100 o 150 es más que suficiente. Un valor demasiado alto puede saturar la memoria, porque cada conexión reserva un buffer de hilo.

max_connections = 150

Si ves en los logs errores de "Too many connections", puedes subirlo un poco, pero antes revisa si hay consultas lentas que estén bloqueando conexiones.

4. tmp_table_size y max_heap_table_size: para consultas con tablas temporales

WordPress a veces necesita crear tablas temporales en memoria para ordenar o agrupar resultados. Si estas tablas son demasiado pequeñas, se convierten en tablas en disco, lo que es un gran freno. Un valor de 64M para cada uno es un buen punto de partida.

tmp_table_size = 64M
max_heap_table_size = 64M

Es importante que ambos tengan el mismo valor, porque MySQL usará el más pequeño de los dos.

5. innodb_log_file_size: el registro de transacciones

Este archivo guarda el registro de las operaciones antes de escribirlas en las tablas. Un valor pequeño obliga a MySQL a hacer muchos cambios de registro (flush), lo que ralentiza las escrituras. Para WordPress, que tiene muchas escrituras (comentarios, plugins, cachés), te recomiendo subirlo a 64M o 128M.

innodb_log_file_size = 64M

Ojo: si cambias este valor, MySQL debe reiniciarse de forma limpia. Si el archivo de log ya existe, puede que tengas que borrarlo antes de reiniciar. Es un poco delicado, así que si no estás seguro, mejor déjalo o pide ayuda a tu hosting.

Ajustes específicos para WordPress: las tablas y los índices

La configuración de MySQL es solo la mitad del trabajo. La otra mitad es optimizar cómo WordPress usa esa base de datos. Aquí es donde entran los plugins y las buenas prácticas.

Usa un plugin de caché de consultas

No me refiero a la caché de MySQL, sino a la caché de objetos de WordPress. Plugins como Redis Object Cache o Memcached almacenan en memoria las consultas repetitivas de WordPress, evitando que se ejecuten cada vez. Esto es especialmente útil para páginas con muchos widgets o menús dinámicos.

Si tu servidor no tiene Redis o Memcached instalado, puedes usar un plugin de caché de página completo como W3 Total Cache o WP Super Cache. Estos generan archivos HTML estáticos y MySQL apenas se usa para visitantes anónimos.

Limpia las transients y la tabla de opciones

WordPress guarda datos temporales en la tabla wp_options (transients). Con el tiempo, esta tabla se llena de basura y se vuelve enorme. Puedes usar un plugin como WP-Optimize para limpiarla. También puedes ejecutar desde phpMyAdmin:

DELETE FROM wp_options WHERE option_name LIKE '_transient_%';

Esto no rompe nada, solo elimina cachés temporales que ya han caducado. Hazlo con cuidado y, si puedes, en horario de bajo tráfico.

Revisa los índices de las tablas

A veces, los plugins o temas crean tablas sin índices, lo que hace que las consultas sean lentísimas. Puedes activar el log de consultas lentas en MySQL para identificarlas:

slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 2

Con esto, cualquier consulta que tarde más de 2 segundos se guardará en el log. Luego puedes analizarlas y añadir índices en las columnas que se usan en los WHERE y JOIN.

Herramientas para medir y verificar la optimización

No te quedes solo con la teoría. Después de aplicar los cambios, debes reiniciar MySQL y medir el rendimiento. Aquí tienes algunas herramientas:

  • phpMyAdmin: En DirectAdmin lo encuentras en tu panel. Ve a la pestaña "Estado" o "Variables" y verás los valores actuales.
  • MySQLTuner: Es un script que analiza tu configuración y te da recomendaciones. Puedes ejecutarlo con wget y perl. Es muy útil.
  • Explain de consultas: En phpMyAdmin, si tienes una consulta lenta, puedes ejecutarla con EXPLAIN para ver cómo MySQL la ejecuta.

También puedes usar la herramienta de línea de comandos mysqladmin para ver el estado:

mysqladmin status

Esto te mostrará el uptime, el número de consultas por segundo y otras métricas.

Errores comunes y cómo evitarlos

Poner valores demasiado altos

Uno de los errores más típicos al optimizar mysql directadmin es poner innodb_buffer_pool_size a 4G en un servidor con 2 GB de RAM. El resultado es que MySQL no arranca o el sistema se queda sin memoria. Ve subiendo los valores poco a poco y monitorizando.

No reiniciar correctamente

Después de cambiar my.cnf, debes reiniciar MySQL con:

systemctl restart mysql

O en sistemas más antiguos:

service mysql restart

Si el servicio no arranca, revisa el log de errores en /var/log/mysql/error.log. Ahí te dirá qué parámetro está mal.

Ignorar la versión de MySQL

Recuerda que MySQL 8.0 eliminó la query cache. Si intentas activarla, simplemente se ignorará. Además, en MySQL 8.0, el valor por defecto de innodb_buffer_pool_size es más alto, así que quizás no necesites tocarlo tanto.

¿Qué pasa con Syspanel? Una alternativa con sus propios atajos

Si estás en un hosting que usa Syspanel (el antiguo HestiaCP), el puerto de acceso es el 2106. En Syspanel, la gestión de MySQL es similar pero la ruta del archivo de configuración puede variar. Normalmente está en /etc/mysql/my.cnf o /etc/my.cnf. La buena noticia es que los parámetros que te he comentado son universales, así que te sirven igual.

La diferencia principal es que en Syspanel puede que tengas una interfaz gráfica para ajustar algunos valores de memoria, pero para los parámetros avanzados seguirás necesitando SSH. No te preocupes, el proceso es idéntico.

Preguntas frecuentes (FAQ)

¿Cuánto tiempo tarda en notarse la mejora?

Inmediatamente después de reiniciar MySQL. La primera carga puede ser un poco más lenta porque se llena el buffer, pero a partir de la segunda visita notarás la diferencia.

¿Puedo romper mi web si toco la configuración?

Si haces una copia de seguridad y cambias un solo parámetro cada vez, es muy difícil romper algo. Si la web no carga, restaura el my.cnf original y reinicia. No hay peligro de pérdida de datos.

¿Necesito ser root para hacer estos cambios?

Sí, necesitas acceso root al servidor. Si estás en hosting compartido, no podrás tocar estos archivos. En ese caso, habla con tu proveedor y pídele que aplique una configuración optimizada para WordPress. Muchos lo hacen gratis.

¿Los plugins de caché de WordPress son suficientes?

No. Un plugin de caché de página ayuda mucho, pero si MySQL está mal configurado, el plugin no puede resolver las consultas lentas. Es una combinación de ambos.

¿Qué pasa si mi web tiene mucho tráfico y aún así va lenta?

Entonces quizás necesites pasar a un VPS o a un servidor dedicado. La configuración de MySQL es solo una parte del rendimiento; también influyen PHP, el servidor web y la red.

Conclusión y próximos pasos

Optimizar MySQL en DirectAdmin para WordPress no es una tarea de otro mundo. Con los parámetros que te he dado, puedes conseguir una mejora notable en la velocidad de tu web y en la estabilidad del servidor. Recuerda que la clave está en el equilibrio: ni dejar a MySQL sin recursos, ni darle más de lo que el servidor puede soportar.

Empieza por innodb_buffer_pool_size y max_connections, reinicia, mide y ve ajustando poco a poco. No tengas miedo de experimentar, siempre con la copia de seguridad a mano. Y si en algún momento te sientes perdido, no dudes en contactar con tu proveedor de hosting; es su trabajo ayudarte a sacar el máximo partido a tu servidor.

Ahora que ya sabes cómo hacerlo, ¿a qué esperas para probarlo? Tu WordPress (y tus visitantes) te lo agradecerán con cargas más rápidas y una experiencia mucho más fluida.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel