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

Cómo optimizar tablas MySQL en PrestaShop para mejorar el rendimiento

Actualizado el 10 de enero de 2026

¿Tu tienda PrestaShop carga lento, especialmente en el catálogo, la gestión de pedidos o el back office? Un culpable muy común, aunque invisible para el ojo inexperto, son las tablas de la base de datos MySQL desordenadas o sobredimensionadas.

PrestaShop es un software muy completo que, con el tiempo, acumula datos temporales, registros de navegación, sesiones caducadas y versiones antiguas de productos. Si no realizas un mantenimiento periódico, la base de datos se convierte en un lastre que frena todo el sistema.

En este artículo, te explicaré paso a paso cómo optimizar MySQL PrestaShop para que tu tienda vuelva a volar. No necesitas ser un experto en bases de datos; solo seguir estas instrucciones claras y seguras desde phpMyAdmin. Al final, también resolveremos las dudas más frecuentes (FAQ) sobre este tema.


¿Por qué es importante optimizar las tablas MySQL en PrestaShop?

Imagina que tu base de datos es una gran biblioteca. Cada vez que un cliente visita tu tienda o realiza una compra, se añaden nuevos libros (datos). Con el tiempo, algunos libros se estropean, otros se duplican y muchos simplemente están de más. Si no ordenas la biblioteca, encontrar un libro concreto se vuelve lentísimo.

En términos técnicos, las tablas de tu base de datos sufren de:

  • Fragmentación: Los datos se almacenan en espacios no contiguos, lo que obliga al disco duro a hacer más movimientos para leerlos.
  • Registros obsoletos: Sesiones de visitantes, carritos abandonados, búsquedas antiguas, etc. Ocupan espacio y ralentizan las consultas.
  • Índices desordenados: Los índices son como el índice de un libro. Si están desordenados, las búsquedas son más lentas.
  • Tablas de registro enormes: PrestaShop guarda muchísimos logs (historial) que, aunque útiles, pueden crecer sin control.

Optimizar las tablas resuelve estos problemas, lo que se traduce en:

  • Carga más rápida de páginas (especialmente categorías y fichas de producto).
  • Back office más ágil al gestionar pedidos, clientes o módulos.
  • Menor consumo de recursos del servidor (CPU y RAM).
  • Mejor experiencia de usuario y, por tanto, mejor posicionamiento SEO (Google penaliza las webs lentas).

Herramientas necesarias: phpMyAdmin y acceso a la base de datos

Para realizar la optimización, necesitarás acceder a la base de datos de tu PrestaShop. La herramienta más común y amigable es phpMyAdmin. Lo encontrarás generalmente en el panel de control de tu hosting.

¿Dónde está phpMyAdmin?

  • cPanel: Busca la sección "Bases de Datos" y haz clic en "phpMyAdmin".
  • Syspanel (HestiaCP): Accede a través del puerto 2106 (ejemplo: https://tudominio.com:2106). Luego, en el menú lateral, busca "Bases de Datos" y selecciona "phpMyAdmin".
  • Plesk o DirectAdmin: Suelen tener un acceso directo en la sección de bases de datos.

[INFO] Si no encuentras phpMyAdmin, contacta con tu proveedor de hosting. Es una herramienta estándar que debería estar disponible.

Antes de empezar: ¡Haz una copia de seguridad!

[WARNING] Manipular la base de datos directamente puede causar daños irreversibles si no se hace con cuidado. SIEMPRE realiza una copia de seguridad completa antes de cualquier operación. En phpMyAdmin, selecciona tu base de datos y ve a la pestaña "Exportar". Elige el método "Rápido" y formato SQL. Guarda el archivo en un lugar seguro.


Paso a paso: Cómo optimizar tablas MySQL en PrestaShop

Sigue estos pasos en orden. No te saltes ninguno.

1. Identifica las tablas problemáticas

No todas las tablas necesitan la misma atención. Las más importantes para el rendimiento de PrestaShop son:

  • ps_connections y ps_connections_page: Almacenan las conexiones de los visitantes. Suelen crecer mucho.
  • ps_guest: Información de visitantes no registrados.
  • ps_statssearch: Historial de búsquedas en tu tienda.
  • ps_log (o ps_logs): Registro de errores y eventos del sistema.
  • ps_sessions (o ps_session): Sesiones de usuarios activos.
  • ps_cart y ps_cart_product: Carritos de compra (incluyendo los abandonados).
  • ps_product y ps_product_shop: Tablas de productos. Son críticas, pero no las vamos a limpiar, solo optimizar su estructura.
  • ps_stock_available: Stock de productos. Muy importante para tiendas con mucho inventario.

2. Limpia los registros innecesarios (¡Cuidado!)

Esta es la parte que más impacto tiene en el rendimiento. Consiste en eliminar datos antiguos que ya no sirven.

A. Limpiar sesiones y conexiones antiguas

En phpMyAdmin, selecciona tu base de datos y haz clic en la pestaña "SQL". Ejecuta las siguientes consultas una por una:

-- Eliminar conexiones de más de 30 días (ajusta los días según necesites)
DELETE FROM `ps_connections` WHERE `date_add` < DATE_SUB(NOW(), INTERVAL 30 DAY);

-- Eliminar páginas de conexiones asociadas
DELETE FROM `ps_connections_page` WHERE `id_connections` NOT IN (SELECT `id_connections` FROM `ps_connections`);

-- Eliminar sesiones de más de 7 días
DELETE FROM `ps_sessions` WHERE `date_upd` < DATE_SUB(NOW(), INTERVAL 7 DAY);

[TIP] Si tu tienda tiene mucho tráfico, puedes hacer esto cada semana. Para tiendas pequeñas, una vez al mes es suficiente.

B. Limpiar historial de búsquedas y estadísticas

-- Eliminar búsquedas de más de 30 días
DELETE FROM `ps_statssearch` WHERE `date_add` < DATE_SUB(NOW(), INTERVAL 30 DAY);

-- Eliminar visitas de guest antiguas (opcional)
DELETE FROM `ps_guest` WHERE `id_guest` NOT IN (SELECT `id_guest` FROM `ps_connections`);

C. Limpiar logs del sistema

-- Eliminar logs de más de 7 días
DELETE FROM `ps_log` WHERE `date_add` < DATE_SUB(NOW(), INTERVAL 7 DAY);

[WARNING] No elimines registros de pedidos, clientes o productos. Solo estamos limpiando datos temporales y de estadísticas.

3. Optimiza la estructura de las tablas (Desfragmentación)

Una vez limpiados los registros, es hora de "ordenar la biblioteca". Este proceso se llama OPTIMIZE y repara la fragmentación, reordena los índices y libera espacio.

Método 1: Desde phpMyAdmin (Recomendado para principiantes)

  1. Selecciona tu base de datos en el panel izquierdo.
  2. Verás una lista de todas las tablas. Marca la casilla de selección en la parte superior para seleccionarlas todas.
  3. En el menú desplegable "Con seleccionados", elige "Optimizar tabla".
  4. phpMyAdmin ejecutará la optimización y te mostrará los resultados. Verás mensajes como "OK" o "Table is already up to date".

Método 2: Consulta SQL directa

Si prefieres usar SQL, puedes ejecutar:

OPTIMIZE TABLE `ps_connections`;
OPTIMIZE TABLE `ps_connections_page`;
OPTIMIZE TABLE `ps_sessions`;
OPTIMIZE TABLE `ps_statssearch`;
OPTIMIZE TABLE `ps_log`;
OPTIMIZE TABLE `ps_cart`;
OPTIMIZE TABLE `ps_cart_product`;
OPTIMIZE TABLE `ps_product`;
-- ... repite para todas las tablas que quieras optimizar

[TIP] Para ahorrar tiempo, puedes optimizar todas las tablas de una sola vez con: OPTIMIZE TABLE nombre_de_tu_base_de_datos.*; (pero ten cuidado, puede tardar un poco).

4. Revisa y repara índices

Los índices son cruciales para la velocidad de las consultas. A veces se corrompen o se vuelven ineficientes.

Desde phpMyAdmin:

  1. Selecciona una tabla (por ejemplo, ps_product).
  2. Ve a la pestaña "Estructura".
  3. Verás una lista de índices debajo de las columnas. Si alguno tiene un estado "No" en la columna "Cardinalidad" o parece extraño, puedes repararlo.

Reparar índices con SQL:

REPAIR TABLE `ps_product`;
REPAIR TABLE `ps_product_shop`;
-- Repite para tablas que notes lentas

[INFO] La reparación de índices es segura, pero solo hazla si sospechas de problemas (errores en consultas, lentitud extrema). En la mayoría de los casos, la optimización es suficiente.

5. Configura el mantenimiento automático (Opcional pero recomendado)

Para no tener que hacer esto manualmente cada mes, puedes usar un módulo de PrestaShop o programar una tarea (cron) que ejecute las consultas de limpieza.

Opción 1: Módulos gratuitos

Busca en el marketplace de PrestaShop módulos como "MySQL Optimizer" o "Database Cleaner". Algunos son gratuitos y muy efectivos. Eso sí, revisa las reseñas antes de instalarlos.

Opción 2: Tarea programada (cron job)

Si tu hosting lo permite (cPanel, Syspanel, etc.), puedes crear un script PHP que ejecute las consultas y llamarlo cada cierto tiempo. Esto ya es más avanzado, pero te ahorrará trabajo.


Preguntas Frecuentes (FAQ)

Aquí respondo las dudas más comunes que nos llegan al soporte técnico.

¿Con qué frecuencia debo optimizar las tablas de PrestaShop?

Depende del volumen de tu tienda:

  • Tiendas pequeñas (< 1000 productos, < 100 visitas/día): Una vez al mes.
  • Tiendas medianas (< 10.000 productos, < 1000 visitas/día): Cada 2 semanas.
  • Tiendas grandes (> 10.000 productos, > 1000 visitas/día): Cada semana o incluso a diario para tablas críticas como ps_sessions.

¿Puedo perder datos al optimizar las tablas?

No, si solo ejecutas OPTIMIZE y REPAIR. El riesgo está en las consultas DELETE que eliminan registros. Por eso es vital hacer la copia de seguridad antes.

¿Qué hago si mi base de datos es muy grande (> 1 GB)?

Si tu base de datos es enorme, la optimización manual puede ser lenta. Te recomiendo:

  1. Usar la herramienta de mantenimiento de PrestaShop: Ve a Parámetros de la tienda > Rendimiento > Base de datos. Ahí puedes activar la limpieza automática de sesiones y logs.
  2. Contratar un hosting especializado: Los hostings para PrestaShop suelen tener herramientas de optimización de bases de datos integradas.
  3. Considerar un módulo profesional: Algunos módulos de pago hacen una limpieza profunda y segura.

¿Por qué mi tienda sigue lenta después de optimizar?

La base de datos es solo una pieza del rompecabezas. Si sigue lenta, revisa:

  • Módulos instalados: Desactiva los que no uses.
  • Imágenes: Comprímelas y usa un CDN.
  • Tema: Un tema mal codificado puede ralentizar todo.
  • Servidor: Puede que necesites más recursos (RAM, CPU) o un hosting más potente.

¿Puedo optimizar desde el back office de PrestaShop?

PrestaShop tiene una opción básica en Parámetros de la tienda > Rendimiento > Base de datos. Allí puedes limpiar sesiones y logs, pero no hace una optimización completa de tablas. Para una limpieza a fondo, necesitas phpMyAdmin o un módulo.

¿Qué pasa si no tengo acceso a phpMyAdmin?

Contacta con tu proveedor de hosting. Es muy raro que no lo ofrezcan. Si no, pídeles que ellos ejecuten las consultas de optimización por ti.


Conclusión

Optimizar las tablas MySQL de tu PrestaShop es una tarea de mantenimiento esencial que no deberías ignorar. No solo mejora la velocidad de carga, sino que también alarga la vida de tu servidor y ofrece una mejor experiencia a tus clientes.

Recuerda: copia de seguridad, limpieza de registros, optimización de tablas y revisión de índices. Con estos cuatro pasos, tu tienda funcionará como nueva.

Si tienes dudas, déjalas en los comentarios o contacta con nuestro equipo de soporte. ¡Estamos aquí para ayudarte a acelerar tu PrestaShop!

¿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