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

Cómo optimizar tablas de MySQL en PrestaShop

Actualizado el 28 de marzo de 2026

¿Tu tienda PrestaShop va lenta? ¿Las páginas tardan una eternidad en cargar o el panel de administración se queda colgado? Antes de pensar en cambiar de hosting o en instalar módulos mágicos, hay una tarea de mantenimiento esencial que mucha gente olvida: optimizar las tablas de MySQL.

PrestaShop utiliza una base de datos MySQL para almacenar absolutamente todo: productos, pedidos, clientes, configuraciones, sesiones, estadísticas... Con el tiempo, estas tablas se fragmentan, acumulan registros basura y pierden eficiencia. Es como tener un armario tan lleno de trastos que ya no puedes ni cerrar la puerta.

En esta guía completa y fácil de seguir, te voy a explicar qué significa exactamente optimizar tablas, por qué es crucial para el rendimiento de tu tienda y cómo hacerlo paso a paso, incluso si no eres un experto técnico. Al final, tendrás un checklist para mantener tu PrestaShop más rápido que nunca.


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

Piensa en tu base de datos como el cerebro de tu tienda. Cada vez que un cliente busca un producto, añade algo al carrito o finaliza una compra, se ejecutan cientos de consultas a la base de datos. Si las tablas están desordenadas, esas consultas tardan más.

Los principales problemas que soluciona la optimización son:

  • Fragmentación de datos: Al insertar, actualizar y borrar registros, los datos se desordenan en el disco. La optimización los reordena físicamente.
  • Registros huérfanos o basura: Sesiones de visitantes antiguas, carritos abandonados, logs de errores viejos... todo eso ocupa espacio y ralentiza las búsquedas.
  • Índices desactualizados: Los índices son como el índice de un libro. Si están desordenados, MySQL tiene que hojear todo el libro para encontrar lo que busca.
  • Sobrecarga de la tabla ps_connections y ps_guest: Estas tablas son especialmente propensas a acumular millones de registros si tu tienda tiene tráfico.

[WARNING] Si notas que tu PrestaShop se vuelve más lento con el paso de los meses, especialmente en el back-office (el panel de administración), la causa más probable es una base de datos sobrecargada y sin optimizar. No ignores esta señal.


¿Qué tablas debo optimizar en PrestaShop?

No todas las tablas tienen la misma importancia. Aquí tienes una lista de las tablas críticas que deberías revisar con frecuencia:

  • ps_connections y ps_connections_source: Registran cada visita. Suelen crecer sin control.
  • ps_guest: Datos de visitantes no registrados.
  • ps_statssearch: Historial de búsquedas en tu tienda.
  • ps_log: Registro de errores y eventos.
  • ps_smarty_cache y ps_cache: Caché de plantillas y consultas. A veces se corrompen.
  • ps_cart y ps_cart_product: Carritos abandonados. Miles de carritos no finalizados ralentizan las consultas.
  • ps_customer y ps_address: Si tienes muchos clientes, estas tablas también se benefician.
  • ps_product, ps_product_attribute, ps_stock_available: Tablas de productos y stock. Son las más consultadas.

[TIP] No te obsesiones con optimizar tablas muy pequeñas (como ps_currency o ps_lang). Céntrate en las que tienen miles o millones de registros.


Método 1: Optimizar desde phpMyAdmin (El más común y seguro)

phpMyAdmin es una herramienta web que viene instalada en la mayoría de los paneles de hosting. Es la forma más visual y controlada de hacerlo.

Paso 1: Accede a tu panel de hosting y localiza phpMyAdmin

Dependiendo de tu proveedor:

  • cPanel: Busca el icono de "phpMyAdmin" en la sección de "Bases de Datos".
  • Syspanel (HestiaCP): Accede a través de https://tu-dominio:2106 (recuerda, el puerto es 2106). Luego ve a "Bases de Datos" y haz clic en "phpMyAdmin".
  • Plesk: Ve a "Bases de Datos", selecciona tu base de datos y haz clic en "phpMyAdmin".

Paso 2: Selecciona tu base de datos de PrestaShop

En el panel izquierdo de phpMyAdmin, verás una lista de bases de datos. Haz clic en la que corresponde a tu tienda (suele llamarse algo como prestashop_db o usuario_prestashop).

Paso 3: Elige las tablas a optimizar

Aparecerá una lista con todas las tablas (normalmente empiezan por ps_). Puedes seleccionarlas una a una o usar la opción "Seleccionar todo" que hay al final de la lista.

Paso 4: Activa la opción "Optimizar tabla"

En el menú desplegable "Con seleccionados:" (justo debajo de la lista de tablas), elige la opción "Optimizar tabla". phpMyAdmin ejecutará automáticamente el comando OPTIMIZE TABLE para cada una.

Paso 5: Verifica el resultado

Aparecerá un mensaje como La tabla 'ps_connections' ya está actualizada o Estado: OK. Si alguna tabla no se pudo optimizar (por ejemplo, porque usa un motor InnoDB no compatible en versiones antiguas), no te preocupes, el proceso no dañará nada.

[INFO] Algunas tablas InnoDB no se optimizan completamente con este método. Para ellas, es mejor usar el método de línea de comandos o una herramienta como mysqlcheck.


Método 2: Optimizar desde la línea de comandos (SSH) - Avanzado pero más potente

Si tienes acceso SSH a tu servidor, este método es mucho más rápido y efectivo, especialmente para bases de datos muy grandes.

Paso 1: Conéctate a tu servidor vía SSH

Usa un cliente como PuTTY (Windows) o la terminal (Mac/Linux). Necesitarás tu usuario y contraseña de SSH (no confundir con los de PrestaShop).

Paso 2: Ejecuta el comando de optimización

El comando mágico es mysqlcheck. Este es un ejemplo para optimizar todas las tablas de una base de datos llamada midb_prestashop:

mysqlcheck -u tiusuario -p --optimize midb_prestashop

Te pedirá la contraseña de MySQL (la misma que usas para conectar PrestaShop a la base de datos). Tras escribirla, el proceso comenzará.

Paso 3: Opciones adicionales útiles

  • Optimizar solo tablas específicas: Si solo quieres optimizar ps_connections, escribe:
    mysqlcheck -u tiusuario -p --optimize midb_prestashop ps_connections
    
  • Forzar optimización en tablas InnoDB: A veces OPTIMIZE no funciona bien en InnoDB. Puedes forzar una reconstrucción usando ALTER TABLE. Ejemplo:
    ALTER TABLE ps_connections ENGINE=InnoDB;
    
    Esto reescribe toda la tabla, lo que equivale a una optimización profunda.

[WARNING] Ejecutar ALTER TABLE en tablas muy grandes (más de 1 GB) puede dejar la tabla bloqueada durante varios minutos. Hazlo en horas de bajo tráfico o en modo mantenimiento.


Método 3: Usar un módulo de PrestaShop (Para los menos técnicos)

Si no te sientes cómodo con phpMyAdmin o SSH, existen módulos que automatizan la optimización de la base de datos desde el propio panel de administración de PrestaShop.

Algunos módulos populares (gratuitos y de pago):

  • PrestaShop Cleaner: Clásico y gratuito. Permite limpiar tablas de sesiones, carritos abandonados, logs, etc., y optimizar las tablas restantes.
  • Advanced Database Optimizer: De pago, pero muy completo. Permite programar optimizaciones automáticas.

Cómo usarlo (ejemplo con PrestaShop Cleaner):

  1. Ve a Módulos > Módulos y servicios en tu back-office.
  2. Busca "PrestaShop Cleaner" e instálalo.
  3. Una vez instalado, ve a Módulos > Módulos y servicios > PrestaShop Cleaner.
  4. Marca las opciones que quieres limpiar (sesiones, carritos, conexiones, etc.) y haz clic en "Clean".
  5. Al final, el módulo suele mostrar un botón para "Optimizar tablas". Púlsalo.

[TIP] Los módulos son ideales para mantenimiento semanal. Para una optimización profunda mensual, complementa con phpMyAdmin o SSH.


¿Cada cuánto tiempo debo optimizar las tablas?

No hay una regla fija, pero aquí tienes una guía práctica:

  • Semanalmente: Limpia y optimiza las tablas de sesiones (ps_connections, ps_guest, ps_cart). Son las que más se llenan.
  • Mensualmente: Optimiza todas las tablas principales (productos, clientes, pedidos, etc.).
  • Después de grandes cambios: Si instalaste/desinstalaste muchos módulos, importaste muchos productos o hiciste una migración, optimiza todo.

[INFO] Puedes programar un cron job en tu servidor para que ejecute mysqlcheck automáticamente cada semana. En Syspanel (HestiaCP), ve a "Cron Jobs" y añade un comando como:

mysqlcheck -u tiusuario -p'tucontraseña' --optimize midb_prestashop

(Nota: pon la contraseña directamente en el comando para evitar que te la pida interactivamente, pero asegúrate de que el archivo cron no sea legible por otros usuarios).


Preguntas Frecuentes (FAQ) sobre optimización de tablas en PrestaShop

¿Optimizar tablas borra datos de mi tienda?

No. Optimizar solo reordena los datos y libera espacio no utilizado. No elimina registros por sí mismo. Sin embargo, es recomendable limpiar datos basura (sesiones, logs, carritos abandonados) antes de optimizar para que el proceso sea más efectivo.

¿Puedo optimizar mientras la tienda está en línea?

Sí, pero es mejor hacerlo en horas de bajo tráfico (como madrugada). El proceso puede bloquear tablas brevemente, lo que podría causar errores a usuarios que estén comprando en ese momento. Si tu tienda tiene mucho tráfico, ponla en modo mantenimiento durante 5-10 minutos.

¿Qué hago si la optimización falla o se queda colgada?

Es raro, pero puede pasar con tablas enormes. Simplemente cancela la operación (cierra la ventana de phpMyAdmin o mata el proceso SSH). No dañará nada. Luego intenta optimizar tabla por tabla, empezando por las más pequeñas.

¿Es lo mismo optimizar que reparar?

No. Reparar se usa cuando una tabla está corrupta y no funciona. Optimizar es mantenimiento preventivo para mejorar el rendimiento. Si tienes errores de "Table is marked as crashed", entonces primero repara (REPAIR TABLE), y luego optimiza.

¿Los índices se optimizan solos?

Los índices se actualizan automáticamente al insertar/borrar datos, pero con el tiempo se fragmentan. La optimización también repara los índices, haciéndolos más rápidos.


Conclusión: Haz de la optimización un hábito

Optimizar las tablas de MySQL en PrestaShop no es un lujo, es una necesidad si quieres que tu tienda vuele. No esperes a que el rendimiento sea insoportable. Programa una limpieza y optimización mensual, y tu base de datos te lo agradecerá con tiempos de carga mucho más rápidos.

Recuerda: una base de datos ligera y ordenada es el primer paso hacia un PrestaShop rápido y una mejor experiencia de usuario. ¡Manos a la obra!

¿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