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

Cómo optimizar y acelerar consultas MySQL en WordPress y PrestaShop (índices y caché)

Actualizado el 21 de mayo de 2026

¿Por qué tu tienda o web va lenta? El problema no siempre es el hosting

Si tienes una web con WordPress o una tienda con PrestaShop, seguramente has notado que a veces las páginas tardan en cargar, el panel de administración va pesado o incluso aparecen errores de conexión con la base de datos. El culpable, en la mayoría de los casos, no es tu conexión ni el servidor, sino la base de datos MySQL que está detrás.

Cada vez que un visitante entra a tu web, el servidor ejecuta cientos de consultas SQL para traer artículos, productos, comentarios o configuraciones. Si esas consultas no están optimizadas, cada página tarda más en generarse. Y si además tienes un pico de visitas, la base de datos se satura y todo se vuelve insoportablemente lento.

La buena noticia es que optimizar mysql wordpress y optimizar mysql prestashop es algo que puedes hacer tú mismo, sin ser un experto en programación, siguiendo una serie de pasos lógicos y muy efectivos. En este artículo te voy a explicar, de forma clara y sencilla, cómo acelerar tus consultas usando índices MySQL y sistemas de caché.


Entendiendo qué es una consulta MySQL y por qué se ralentiza

Antes de ponernos manos a la obra, es importante que entiendas qué pasa dentro de tu servidor. Una consulta MySQL es una petición que hace el sistema para obtener o modificar datos. Por ejemplo: "tráeme todos los productos de la categoría zapatos que cuesten menos de 50 euros".

Cuando tu web recibe muchas visitas, se lanzan cientos de estas consultas al mismo tiempo. Si la tabla donde se buscan esos datos es enorme y no está bien indexada, MySQL tiene que revisar fila por fila hasta encontrar lo que busca. Eso es como buscar una página en un libro de 5.000 hojas sin índice: tardarías muchísimo.

Los dos grandes aliados para solucionar esto son:

  • Los índices: estructuras que permiten a MySQL encontrar los datos mucho más rápido, como el índice de un libro.
  • La caché: guardar los resultados de las consultas más repetidas para no tener que ejecutarlas de nuevo cada vez.

Vamos a ver cómo aplicar ambos conceptos en WordPress y PrestaShop.


Optimizar MySQL WordPress: primeros pasos (y los más importantes)

WordPress es, con diferencia, el CMS más utilizado del mundo. Y también es de los que más sufre cuando la base de datos crece sin control. Aquí tienes una guía paso a paso para optimizar mysql wordpress desde cero.

1. Revisa el estado actual de tu base de datos

Lo primero es saber con qué estás trabajando. Accede a tu panel de control (si usas Syspanel, el acceso es a través del puerto 2106) y entra en phpMyAdmin. Una vez dentro, selecciona tu base de datos de WordPress (normalmente empieza por wp_).

En la pestaña Estado o State, verás información muy útil como el tiempo de actividad del servidor, el número de consultas por segundo y los índices que se están usando. Si ves que hay muchas tablas con la etiqueta "Sin índice" o "InnoDB" con un tamaño grande, es hora de actuar.

2. Optimiza las tablas de forma manual

En phpMyAdmin, marca todas las tablas de tu base de datos (puedes usar el botón "Marcar todas") y en el menú desplegable inferior selecciona Optimizar tabla. Esta acción compacta los espacios vacíos y reorganiza los datos. Es un mantenimiento básico que deberías hacer al menos una vez al mes.

[TIP] Si no quieres hacerlo manualmente, instala un plugin como "WP-Optimize" o "Advanced Database Cleaner". Ellos se encargan de limpiar revisiones antiguas, transients caducados y optimizar las tablas de forma automática.

3. Limpia los datos basura

WordPress acumula muchísima basura con el tiempo: revisiones de entradas antiguas, borradores, comentarios spam, transients (datos temporales) y opciones obsoletas. Todo eso engorda las tablas y hace que cada consulta tarde más.

Ejecuta estas consultas SQL desde phpMyAdmin (haz una copia de seguridad antes):

DELETE FROM wp_posts WHERE post_type = 'revision';
DELETE FROM wp_comments WHERE comment_approved = 'spam';
DELETE FROM wp_options WHERE option_name LIKE '_transient_%' OR option_name LIKE '_site_transient_%';

[WARNING] Ten mucho cuidado con las consultas manuales. Si no estás seguro de lo que estás haciendo, usa un plugin. Un error aquí puede borrar contenido importante.

4. Cambia el motor de almacenamiento a InnoDB

Si tus tablas usan MyISAM (el motor antiguo), te recomiendo cambiarlas a InnoDB. Este motor soporta mejor las transacciones y los índices de tipo FULLTEXT, y es el estándar actual. En phpMyAdmin, ve a cada tabla, pestaña Operaciones y cambia el tipo a InnoDB.


Índices MySQL: el gran secreto del rendimiento

Aquí es donde más partido le vas a sacar a este artículo. Los índices mysql rendimiento son la clave para que tus consultas sean casi instantáneas. Sin ellos, MySQL hace escaneos completos de tabla; con ellos, busca directamente en una estructura ordenada.

¿Cuándo necesitas un índice?

Piensa en las consultas que tu web hace más a menudo. En WordPress, las más típicas son:

  • Buscar entradas por fecha y estado.
  • Contar comentarios por entrada.
  • Buscar opciones por nombre.

Si vas a phpMyAdmin y entras en una tabla como wp_options, verás que ya tiene un índice en la columna option_name. Eso es porque es una columna que se consulta constantemente. Ahora bien, si tienes un plugin de eventos que consulta por fechas y tu tabla wp_postmeta es enorme, probablemente necesites un índice en la columna meta_key o en meta_value.

Cómo crear un índice en phpMyAdmin

Es muy sencillo:

  1. Entra en la tabla que quieres optimizar (por ejemplo, wp_postmeta).
  2. Ve a la pestaña Estructura.
  3. Abajo del todo verás un enlace que dice Crear índice o Add Index.
  4. Elige la columna que quieres indexar (por ejemplo, meta_key) y haz clic en Continuar.

[INFO] No crees índices en todas las columnas. Cada índice ocupa espacio y ralentiza las inserciones. Solo indexa columnas que se usen en condiciones WHERE, JOIN u ORDER BY con frecuencia.

Índices compuestos: la clave para consultas complejas

Si una consulta filtra por dos o tres columnas a la vez, un índice compuesto es mucho más efectivo que varios índices individuales. Por ejemplo, en PrestaShop, la tabla ps_product se consulta muchísimo por id_category_default y active. Un índice compuesto sobre esas dos columnas hará maravillas.

Para crearlo, en phpMyAdmin, en la pestaña Estructura, haz clic en Crear índice y selecciona varias columnas manteniendo pulsada la tecla Ctrl. Así se crea un índice que cubre todas ellas.


Optimizar MySQL PrestaShop: específico para tiendas

PrestaShop es un poco más complejo que WordPress porque tiene muchas más tablas relacionadas entre sí. Pero también tiene herramientas integradas para ayudarte. Vamos a ver cómo optimizar mysql prestashop de forma efectiva.

1. Usa el modo de mantenimiento para hacer cambios

Antes de tocar nada, activa el modo de mantenimiento desde el panel de administración de PrestaShop. Así evitas que los clientes vean errores mientras trabajas.

2. Limpia tablas obsoletas

PrestaShop tiene tablas que se llenan de datos innecesarios con el tiempo:

  • ps_connections: registra cada visita. Puede crecer muchísimo.
  • ps_connections_page: aún más grande.
  • ps_guest: datos de visitantes anónimos.
  • ps_sekeyword: palabras clave de búsqueda.

Puedes truncarlas (vaciarlas) desde phpMyAdmin, pero ten cuidado de no borrar datos que uses para informes. Una buena práctica es vaciarlas cada 3 meses.

3. Configura los índices de PrestaShop

PrestaShop tiene un sistema de índices propio en su panel de administración. Ve a Parámetros avanzados > Rendimiento y verás una sección llamada "Índices de la base de datos". Allí puedes:

  • Ver qué índices están activos.
  • Crear índices sugeridos automáticamente.
  • Eliminar índices que no se usan.

[TIP] Activa la opción "Índice de búsqueda" si tienes muchas combinaciones de atributos. Esto acelera muchísimo las búsquedas de productos por características.

4. Caché de consultas en PrestaShop

PrestaShop incluye un sistema de caché de consultas que puedes activar en Parámetros avanzados > Rendimiento. Elige el tipo "Caché de consultas" y selecciona un sistema como "Memcached" o "APCu" si tu hosting lo soporta. Si no, usa el "Sistema de archivos", que guarda las consultas en archivos temporales.

Para que funcione bien, necesitas tener instalado el módulo de caché correspondiente en tu servidor. Si usas Syspanel, puedes verificar si tienes Memcached instalado desde el administrador de servicios (puerto 2106).


Caché de consultas MySQL: cómo activarla y configurarla

Más allá de la caché que ofrecen los CMS, MySQL tiene su propia caché de consultas. Cuando una consulta es idéntica a una anterior, MySQL devuelve el resultado guardado sin volver a ejecutarla. Esto es oro puro para webs con mucho tráfico.

Activar la caché de consultas en MySQL

Abre tu archivo de configuración de MySQL (normalmente my.cnf o my.ini) y añade estas líneas:

query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M
  • query_cache_type = 1: activa la caché para todas las consultas.
  • query_cache_size = 64M: tamaño de la caché. Empieza con 64 MB y ajústalo según el tamaño de tu base de datos.
  • query_cache_limit = 2M: no cachea consultas que devuelvan más de 2 MB de datos.

Reinicia MySQL después de hacer el cambio.

[WARNING] Si tu servidor tiene MySQL 8.0 o superior, el query cache se ha eliminado por completo. En ese caso, usa una caché de aplicación como Redis o Memcached.

Cómo saber si la caché funciona

En phpMyAdmin, ve a la pestaña Estado y busca las variables Qcache_hits y Qcache_inserts. Si las consultas en caché (hits) son muchas más que las insertadas, estás en el buen camino. Si no, revisa que tus consultas no usen funciones como NOW() o RAND(), porque esas nunca se cachean.


Herramientas para monitorizar y testear el rendimiento

No puedes optimizar lo que no mides. Aquí tienes algunas herramientas para saber si tus cambios están dando resultados:

  • phpMyAdmin: en la pestaña Estado, revisa "Consultas por segundo" y "Uso del índice".
  • MySQL Workbench: te da un informe visual de rendimiento.
  • Plugins para WordPress: "Query Monitor" te muestra todas las consultas de cada página, cuánto tardan y si usan índices.
  • Módulos para PrestaShop: "Performance Profiler" te da datos similares.

[INFO] Si usas Syspanel (puerto 2106), en el apartado de bases de datos puedes ver un resumen del estado de MySQL sin necesidad de instalar nada extra.


Preguntas frecuentes (FAQ)

¿Cada cuánto debo optimizar mi base de datos?

Depende del tráfico. Una web pequeña puede optimizarse una vez al mes. Una tienda con muchos pedidos, cada semana. Lo importante es hacerlo de forma regular para evitar que la basura se acumule.

¿Los índices ralentizan las inserciones?

Sí, ligeramente. Cada vez que insertas o actualizas un registro, MySQL debe actualizar también los índices. Por eso solo debes indexar las columnas que se consultan con frecuencia, no todas.

¿Qué es mejor: caché de MySQL o caché de aplicación?

La caché de MySQL es muy simple y no requiere configuración adicional, pero es menos eficiente que Redis o Memcached. Si tu hosting lo permite, te recomiendo usar Redis con WordPress (plugin "Redis Object Cache") o con PrestaShop (módulo "Redis Cache").

¿Puedo optimizar mi base de datos desde Syspanel?

Sí, en Syspanel (puerto 2106) tienes acceso a phpMyAdmin y a herramientas de gestión de bases de datos. Puedes hacer todas las operaciones que te he descrito desde ahí.

¿Qué hago si mi web sigue lenta después de optimizar?

Si ya has limpiado tablas, creado índices y activado la caché, el siguiente paso es revisar el hosting. A veces el problema no es la base de datos, sino el servidor en general. Contacta con tu proveedor y pide un análisis de rendimiento.


Resumen final: tu checklist de optimización

Para que no se te olvide nada, aquí tienes la lista completa de acciones que debes realizar:

  1. Activa el modo de mantenimiento en tu CMS.
  2. Haz una copia de seguridad de la base de datos.
  3. Limpia datos basura (revisiones, spam, transients).
  4. Optimiza todas las tablas desde phpMyAdmin.
  5. Crea índices en las columnas que se consultan más.
  6. Activa la caché de consultas de MySQL (si tu versión lo permite).
  7. Activa la caché de aplicación (Redis o Memcached) si tu hosting lo soporta.
  8. Monitoriza los resultados con Query Monitor o Performance Profiler.
  9. Desactiva el modo de mantenimiento y comprueba que todo funciona.

Sigue estos pasos y verás una mejora notable en el tiempo de carga de tu web. No necesitas ser un gurú de la programación; solo paciencia y método. Y recuerda, si usas Syspanel, tienes todo lo necesario en el puerto 2106 para gestionar tu base de datos de forma cómoda y segura.

¿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