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

Cómo optimizar tablas de base de datos en PrestaShop (MySQL)

Actualizado el 28 de diciembre de 2025

¿Tu tienda PrestaShop va lenta? Si ya has probado con plugins de caché y optimización de imágenes, pero las páginas siguen tardando en cargar, el problema puede estar en tu base de datos. Con el tiempo, las tablas de MySQL se llenan de datos basura, registros huérfanos y fragmentación, lo que convierte cada consulta en un proceso pesado y lento.

En esta guía extensa y práctica, te voy a enseñar cómo optimizar base de datos PrestaShop paso a paso, sin necesidad de ser un experto en programación. Aprenderás a limpiar, reparar y acelerar tu PrestaShop MySQL para que tu tienda vuele. Al final, te dejaré una lista de preguntas frecuentes y trucos avanzados. Vamos a ello.


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

PrestaShop es un software muy potente, pero también es un "devorador" de recursos de base de datos. Cada vez que un cliente visita tu tienda, se ejecutan decenas de consultas SQL: para mostrar productos, carritos, sesiones, precios, etc. Si esas tablas están llenas de información innecesaria o están fragmentadas, el servidor tarda más en encontrar los datos.

Los síntomas típicos de una base de datos "sucia" son:

  • Tiempo de carga de página superior a 3 segundos.
  • El panel de administración se congela al guardar un producto.
  • Errores de "base de datos no disponible" en horas punta.
  • Aumento del uso de CPU y memoria en tu hosting.

Optimizar tu Prestashop MySQL no solo acelera la tienda, sino que también reduce el riesgo de caídas y mejora tu posicionamiento SEO, ya que Google penaliza las webs lentas.


Preparación previa: copia de seguridad y herramientas necesarias

Antes de tocar nada, haz una copia de seguridad completa. Esto es sagrado. Si algo sale mal, podrás restaurar todo sin perder ventas ni productos.

Cómo hacer una copia de seguridad manual

  1. Accede a tu panel de control (cPanel, Plesk o Syspanel).
    [INFO] Si usas Syspanel, recuerda que el puerto de acceso es el 2106 (ejemplo: https://tu-servidor:2106). Es el panel que recomendamos por su facilidad de uso.

  2. Busca la sección "Bases de Datos MySQL" o "phpMyAdmin".

  3. Selecciona tu base de datos de PrestaShop.

  4. Ve a la pestaña "Exportar" y elige el método "Rápido". Descarga el archivo .sql a tu ordenador.

  5. También exporta los archivos de tu tienda (carpeta public_html o www) por FTP, por si acaso.

Herramientas que vas a necesitar

  • phpMyAdmin: viene incluido en casi todos los paneles de hosting. Es la herramienta principal.
  • Módulo de PrestaShop: puedes usar el módulo "MySQL Management" o simplemente las consultas manuales que te doy aquí.

Paso 1: Identificar las tablas problemáticas

No todas las tablas de tu base de datos son iguales. Algunas acumulan más basura que otras. Las más conflictivas en PrestaShop suelen ser:

  • ps_connections (registros de visitas).
  • ps_connections_page (páginas visitadas).
  • ps_guest (invitados anónimos).
  • ps_sekeyword (palabras clave de búsqueda).
  • ps_sendindex (índice de envíos).
  • ps_log (logs del sistema).
  • ps_cache (caché de consultas).

Para ver el tamaño de cada tabla, entra en phpMyAdmin, selecciona tu base de datos y haz clic en la pestaña "Estructura". Ahí verás el tamaño de cada tabla. Las más grandes suelen ser las que necesitan limpieza.


Paso 2: Limpiar datos basura (registros obsoletos)

Esta es la parte más efectiva para acelerar PrestaShop. Vamos a eliminar los datos que ya no sirven para nada.

2.1 Borrar conexiones antiguas (sesiones y visitas)

Las tablas ps_connections y ps_connections_page registran cada visita, pero rara vez las usas. Puedes borrar todas las que tengan más de 30 días.

Abre la pestaña "SQL" en phpMyAdmin y ejecuta esta consulta:

DELETE FROM ps_connections WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);
DELETE FROM ps_connections_page WHERE time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));

[WARNING] Si tu tienda es muy grande, esta consulta puede tardar unos minutos. No la canceles a mitad de camino.

2.2 Vaciar la tabla de búsquedas (ps_sekeyword)

Cada vez que un cliente busca en tu tienda, se guarda esa palabra. Con el tiempo, acumulas cientos de miles de búsquedas inútiles.

TRUNCATE TABLE ps_sekeyword;

2.3 Eliminar invitados antiguos (ps_guest)

Los invitados son usuarios que visitaron tu tienda sin registrarse. Son datos pesados y sin valor real.

DELETE FROM ps_guest WHERE id_customer = 0;

2.4 Limpiar logs y mensajes de error

PrestaShop guarda muchos logs internos. Puedes vaciarlos con:

TRUNCATE TABLE ps_log;

Paso 3: Optimizar tablas con phpMyAdmin (reparar y defragmentar)

Después de borrar datos, las tablas quedan fragmentadas, como un disco duro desordenado. La optimización reorganiza los espacios y libera espacio.

3.1 Optimización manual de una tabla

En phpMyAdmin, ve a tu base de datos, marca todas las tablas (clic en "Seleccionar todo") y en el menú desplegable elige "Optimizar". Esto ejecuta OPTIMIZE TABLE en todas.

3.2 Optimización por línea de comandos (para avanzados)

Si tu hosting te da acceso SSH, puedes usar:

mysqlcheck -u TU_USUARIO -p TU_BASE_DE_DATOS --optimize

Pero si usas Syspanel, no necesitas SSH: puedes hacerlo desde la interfaz gráfica en la sección de bases de datos, que tiene un botón directo para optimizar.

[TIP] Realiza esta optimización al menos una vez al mes. Es el equivalente a "desfragmentar" tu base de datos.


Paso 4: Activar el mantenimiento automático de PrestaShop

PrestaShop tiene una función nativa que te ayuda a mantener la base de datos limpia sin hacerlo manualmente.

Cómo activarlo

  1. Ve a tu panel de administración de PrestaShop (Back Office).
  2. Entra en Parámetros Avanzados > Base de datos.
  3. En la sección "Mantenimiento de la base de datos", activa la opción "Optimizar las tablas de la base de datos".
  4. Configura la frecuencia (recomendado: una vez al mes).

Este proceso borrará automáticamente los datos temporales y las sesiones antiguas.


Paso 5: Configurar el motor de almacenamiento (InnoDB vs MyISAM)

PrestaShop funciona mejor con el motor InnoDB, ya que soporta transacciones y bloqueos a nivel de fila, lo que mejora el rendimiento en tiendas con muchas visitas.

Para verificar qué motor usan tus tablas, en phpMyAdmin ve a "Estructura" y observa la columna "Tipo". Si ves "MyISAM", puedes convertirlas a InnoDB.

Cómo convertir una tabla a InnoDB

Ejecuta esta consulta por cada tabla que quieras cambiar:

ALTER TABLE ps_product ENGINE = InnoDB;

[INFO] Hacer esto en todas las tablas puede ser tedioso. Existen módulos de pago que lo hacen automáticamente, pero puedes hacerlo manualmente en las tablas más grandes (productos, pedidos, clientes).


Paso 6: Índices de base de datos (acelerar consultas)

Los índices son como el índice de un libro: ayudan a MySQL a encontrar los datos mucho más rápido. PrestaShop ya crea algunos, pero puedes añadir los tuyos para las consultas más comunes.

Ejemplo de índice en la tabla de pedidos

Si haces muchas búsquedas por fecha, crea un índice en la columna date_add:

ALTER TABLE ps_orders ADD INDEX idx_date_add (date_add);

Índice en la tabla de productos por referencia

ALTER TABLE ps_product ADD INDEX idx_reference (reference);

[WARNING] No crees índices en columnas que no uses en consultas. Demasiados índices ralentizan las inserciones y actualizaciones.


Paso 7: Usar el modo de mantenimiento mientras optimizas

Cuando estés haciendo estas operaciones, es recomendable que tu tienda esté en modo mantenimiento para evitar que los clientes entren y generen nuevas consultas mientras tú limpias.

Cómo activar el modo mantenimiento

  1. En el Back Office, ve a Parámetros Generales > Mantenimiento.
  2. Activa "Habilitar modo de mantenimiento".
  3. Guarda los cambios.

Cuando termines, desactívalo. Recuerda que en Syspanel puedes hacer un reinicio rápido del servicio MySQL si notas que algo se queda colgado.


Preguntas frecuentes (FAQ) sobre optimización de base de datos

¿Cada cuánto debo optimizar la base de datos de PrestaShop?

Depende del tráfico. Si tienes una tienda pequeña, una vez al mes es suficiente. Si tienes cientos de pedidos al día, hazlo cada semana. El mantenimiento automático de PrestaShop puede encargarse de ello.

¿Optimizar la base de datos borra mis productos o clientes?

No. Las consultas que te he dado solo eliminan datos temporales, logs y sesiones. Nunca borran productos, pedidos ni clientes. Eso sí, siempre haz una copia de seguridad antes.

¿Por qué mi tabla ps_connections es tan enorme?

Porque está registrando cada visita, incluso los bots de Google. Puedes desactivar la estadística de visitas en PrestaShop si no la usas, o borrarla más frecuentemente.

¿Qué pasa si no tengo acceso a phpMyAdmin?

Si tu hosting usa Syspanel (puerto 2106), encontrarás "phpMyAdmin" dentro de la sección de Bases de Datos. Si tu proveedor no lo ofrece, contacta con soporte.

¿La optimización de base de datos mejora mi SEO?

Indirectamente, sí. Una tienda más rápida mejora la experiencia de usuario y reduce la tasa de rebote, dos factores que Google tiene en cuenta para el posicionamiento.

¿Puedo usar módulos de pago para optimizar?

Sí, hay módulos como "Cleaner" o "Advanced Database Optimizer" que automatizan todo este proceso. Pero con estas consultas manuales, ahorras dinero y aprendes a controlar tu tienda.


Truco extra: Mantener la base de datos ligera desde el origen

Además de optimizar, evita que la basura se acumule:

  • Desactiva las estadísticas de visitas si no las usas.
  • No instales módulos innecesarios que creen tablas.
  • Limpia los carritos abandonados cada 15 días.
  • Configura la eliminación automática de sesiones antiguas en Parámetros Avanzados > Rendimiento.

Conclusión: tu PrestaShop merece una base de datos limpia

Optimizar la base de datos no es un lujo, es una necesidad. Con estos pasos, tu Prestashop MySQL funcionará más rápido, tus clientes estarán más contentos y tu servidor respirará.

Recuerda la rutina ideal:

  1. Copia de seguridad (antes de cualquier cambio).
  2. Limpieza de datos basura (borrar conexiones y logs).
  3. Optimización de tablas (defragmentar).
  4. Revisar índices (añadir los necesarios).
  5. Activar mantenimiento automático.

Si tienes dudas, vuelve a leer los pasos o contacta con tu proveedor de hosting. Y ya sabes: si usas Syspanel, entra por el puerto 2106 para gestionar tu base de datos de forma visual y segura.

Tu tienda y tus clientes te lo agradecerán con más velocidad y mejores ventas. ¡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