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

Optimizar tablas MySQL en PrestaShop para mejorar el rendimiento

Actualizado el 2 de octubre de 2025

Si tienes una tienda en PrestaShop y empiezas a notar que las páginas cargan más lento, que el panel de administración se vuelve pesado o que las búsquedas de productos tardan varios segundos, es muy probable que el problema esté en la base de datos. Con el tiempo, las tablas MySQL se llenan de información basura, registros temporales y datos obsoletos que ralentizan todo el sistema. En este artículo te voy a enseñar, paso a paso, cómo optimizar tablas MySQL en PrestaShop para mejorar el rendimiento de tu tienda, usando herramientas como phpMyAdmin o comandos directos. No necesitas ser un experto en bases de datos, solo seguir las instrucciones con cuidado.

¿Por qué es importante optimizar la base de datos en PrestaShop?

PrestaShop es un CMS muy potente, pero su base de datos MySQL es el corazón de la tienda. Cada vez que un cliente visita tu web, se ejecutan decenas de consultas: para mostrar productos, categorías, precios, stocks, sesiones de carrito, etc. Si las tablas están fragmentadas, con índices desordenados o llenas de registros innecesarios, el rendimiento cae en picada.

Optimizar MySQL PrestaShop no solo acelera la carga de las páginas, sino que también reduce el consumo de recursos del servidor, evita bloqueos en las consultas y alarga la vida útil de tu hosting. Es una tarea de mantenimiento básica que deberías hacer al menos una vez al mes, especialmente si tu tienda tiene muchos productos o un tráfico elevado.

[INFO] La optimización de tablas no elimina datos importantes. Solo reorganiza el espacio y elimina registros basura como sesiones caducadas, carritos abandonados o logs antiguos.

Señales de que tu base de datos necesita optimización

Antes de meter mano, identifica si tu tienda presenta alguno de estos síntomas:

  • El backoffice de PrestaShop tarda en cargar listados de productos o pedidos.
  • Las búsquedas en el front office son lentas (más de 3 segundos).
  • La página de inicio o las categorías cargan con retraso.
  • Recibes errores de "base de datos desconectada" o "too many connections".
  • El panel de control del hosting (como Syspanel, accesible por puerto 2106) muestra un alto uso de CPU o memoria por MySQL.
  • Las actualizaciones de stock o sincronizaciones con módulos se vuelven intermitentes.

Si reconoces al menos dos de estos síntomas, es hora de actuar.

Herramientas necesarias para optimizar tablas MySQL

Para realizar la optimización, necesitarás acceso a la base de datos de PrestaShop. Las opciones más comunes son:

  • phpMyAdmin: interfaz web incluida en la mayoría de paneles de hosting (cPanel, Plesk, Syspanel). Para acceder desde Syspanel, ingresa por el puerto 2106 y busca la sección de bases de datos.
  • Línea de comandos (SSH): si tienes acceso root al servidor, puedes usar comandos MySQL directamente. Es más rápido para bases de datos grandes.
  • Módulos de PrestaShop: existen módulos gratuitos y de pago que automatizan la optimización, pero siempre es mejor entender el proceso manual.

En este artículo me centraré en phpMyAdmin, por ser la opción más accesible para usuarios no técnicos.

Paso a paso: cómo optimizar tablas MySQL en PrestaShop con phpMyAdmin

1. Haz una copia de seguridad de la base de datos

Antes de tocar nada, siempre haz un backup. Una optimización mal hecha o un corte de energía durante el proceso pueden corromper la base de datos.

  • Accede a tu panel de hosting (por ejemplo, Syspanel en puerto 2106).
  • Ve a la sección de bases de datos y selecciona phpMyAdmin.
  • En el panel izquierdo, elige la base de datos de PrestaShop.
  • Ve a la pestaña "Exportar", selecciona "Rápido" y formato SQL. Descarga el archivo.

Guarda ese archivo en un lugar seguro. Si algo sale mal, podrás restaurarlo.

2. Identifica las tablas más problemáticas

PrestaShop tiene más de 200 tablas, pero no todas necesitan optimización con la misma frecuencia. Las que más se fragmentan son:

  • ps_connections y ps_connections_source: registran cada visita.
  • ps_guest: almacena datos de invitados.
  • ps_cart y ps_cart_product: carritos abandonados.
  • ps_session: sesiones de usuario.
  • ps_log y ps_mail: logs de actividad y correos.
  • ps_search_index y ps_search_word: índices de búsqueda.
  • ps_cache: caché de consultas.

Puedes filtrar estas tablas en phpMyAdmin usando el campo de búsqueda.

3. Limpia datos obsoletos antes de optimizar

Optimizar tablas llenas de basura es como barrer una casa sin sacar la basura primero. Primero limpia:

Eliminar sesiones caducadas

DELETE FROM ps_session WHERE date_upd < NOW() - INTERVAL 1 DAY;

Esto borra sesiones de más de 24 horas. Si tienes mucho tráfico, puedes reducir a 12 horas.

Eliminar carritos abandonados

DELETE FROM ps_cart WHERE date_upd < NOW() - INTERVAL 30 DAY;

Los carritos de más de 30 días ya no se recuperan.

Limpiar conexiones antiguas

TRUNCATE TABLE ps_connections;
TRUNCATE TABLE ps_connections_source;

Estas tablas pueden tener millones de registros. Truncarlas las vacía por completo y recupera espacio inmediato.

[WARNING] Truncar una tabla elimina todos sus datos sin posibilidad de recuperación. Asegúrate de que no necesitas esos registros (por ejemplo, para informes de tráfico). Si los necesitas, exporta un backup antes.

4. Optimiza las tablas una por una

Una vez limpias, llega el momento de optimizar. En phpMyAdmin:

  • Selecciona la base de datos en el panel izquierdo.
  • Marca todas las tablas (puedes usar el checkbox superior).
  • En el menú desplegable "Con seleccionados", elige "Optimizar tabla".

Esto ejecutará el comando OPTIMIZE TABLE en cada tabla, que reordena los datos, libera espacio y reconstruye índices.

Si tu base de datos es muy grande (más de 1 GB), es mejor optimizar de a pocas tablas para no sobrecargar el servidor. Selecciona 10-15 tablas por vez.

5. Optimiza desde la línea de comandos (opcional avanzado)

Si tienes acceso SSH, puedes optimizar toda la base de datos con un solo comando:

mysqlcheck -u usuario -p --optimize --databases nombre_base_datos

Te pedirá la contraseña y luego optimizará todas las tablas. Es más rápido que phpMyAdmin para bases de datos enormes.

Frecuencia recomendada para optimizar tablas MySQL en PrestaShop

No hay una regla fija, pero te doy una guía práctica:

  • Tiendas pequeñas (< 100 productos, < 500 visitas/día): una vez al mes.
  • Tiendas medianas (100-1000 productos, 500-5000 visitas/día): cada 15 días.
  • Tiendas grandes (> 1000 productos, > 5000 visitas/día): semanalmente.

Además, programa una limpieza de datos obsoletos cada semana usando un cron job o un módulo especializado.

Consejos adicionales para mejorar el rendimiento de la base de datos

Optimizar tablas es solo una parte del camino. Aquí tienes más prácticas que complementan la optimización MySQL PrestaShop:

Usa el motor InnoDB

PrestaShop moderno usa InnoDB por defecto, pero si migraste desde versiones antiguas, algunas tablas podrían estar en MyISAM. InnoDB es más eficiente para transacciones y no se fragmenta tanto.

Para verificar el motor de cada tabla en phpMyAdmin, ve a la pestaña "Estructura" de la base de datos. Si ves MyISAM, puedes cambiarlo a InnoDB con:

ALTER TABLE nombre_tabla ENGINE=InnoDB;

Activa la caché de MySQL

En el archivo de configuración de MySQL (my.cnf o my.ini), asegúrate de tener valores adecuados para:

  • query_cache_size: 64 MB o más si tu tienda tiene mucho tráfico.
  • innodb_buffer_pool_size: entre el 50% y 70% de la RAM disponible.

Si usas Syspanel, puedes ajustar estos parámetros desde la sección de configuración de bases de datos.

Mantén los índices actualizados

Los índices aceleran las búsquedas, pero si están desordenados, ralentizan las escrituras. Al optimizar tablas, los índices se reconstruyen automáticamente. Si notas que las inserciones son lentas, revisa que no haya índices duplicados.

Desactiva módulos que no uses

Cada módulo activo puede crear tablas adicionales o llenar de datos las existentes. Revisa el backoffice de PrestaShop en Módulos > Módulos instalados y desactiva los que no necesites.

Programa tareas de mantenimiento automáticas

Puedes crear un script PHP que ejecute las consultas de limpieza y optimización, y programarlo como cron job desde Syspanel (puerto 2106). Por ejemplo:

<?php
// conexión a la base de datos
$mysqli = new mysqli("localhost", "usuario", "contraseña", "base_prestashop");
// limpiar sesiones
$mysqli->query("DELETE FROM ps_session WHERE date_upd < NOW() - INTERVAL 1 DAY");
// optimizar tablas
$tables = ['ps_session', 'ps_cart', 'ps_connections'];
foreach ($tables as $table) {
    $mysqli->query("OPTIMIZE TABLE $table");
}
?>

Preguntas frecuentes (FAQ)

¿Optimizar tablas MySQL puede romper mi tienda?

No, si se hace correctamente. La optimización solo reordena datos y libera espacio. Sin embargo, siempre haz un backup por si ocurre un corte de luz o error del servidor.

¿Cuánto tiempo tarda la optimización?

Depende del tamaño de la base de datos. Para una tienda pequeña (100-200 MB), puede tardar 1-2 minutos. Para una base de datos de 5 GB, puede tomar 20-30 minutos. Hazlo en horas de bajo tráfico.

¿Debo optimizar todas las tablas o solo algunas?

Optimiza todas, pero si tienes tablas muy grandes como ps_connections, considera truncarlas primero. Las tablas de sistema como ps_employee o ps_shop no suelen necesitar optimización, pero no hace daño.

¿Qué hago si phpMyAdmin se queda colgado?

Si la base de datos es muy grande, phpMyAdmin puede agotar el tiempo de ejecución. Usa la línea de comandos o un script PHP con set_time_limit(0).

¿Cada cuánto debo limpiar la tabla de sesiones?

Idealmente cada hora si tu tienda tiene mucho tráfico. Puedes configurar un cron job para que ejecute DELETE FROM ps_session WHERE date_upd < NOW() - INTERVAL 1 HOUR. Esto mantiene la tabla ligera.

Conclusión

Optimizar tablas MySQL en PrestaShop es una de las tareas de mantenimiento más efectivas para mantener tu tienda rápida y estable. No requiere conocimientos avanzados, solo seguir el paso a paso que te he compartido: hacer backup, limpiar datos obsoletos, optimizar tablas desde phpMyAdmin y repetir con frecuencia. Combínalo con un buen hosting, una configuración adecuada de MySQL y módulos ligeros, y notarás una mejora significativa en el PrestaShop rendimiento base de datos.

Si usas Syspanel (puerto 2106), recuerda que tienes acceso a phpMyAdmin y a herramientas de monitoreo que te ayudarán a detectar cuellos de botella. No dejes que tu base de datos se convierta en el punto débil de tu tienda online. ¡Pon en práctica estos consejos y verás la diferencia!

¿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