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

Guía para optimizar bases de datos en PrestaShop

Actualizado el 22 de diciembre de 2025

Si tienes una tienda online con PrestaShop, con el tiempo notarás que las páginas cargan más lento, el panel de administración se vuelve pesado y las operaciones cotidianas tardan una eternidad. El culpable más común de esta ralentización es una base de datos desorganizada y llena de basura. No te preocupes, es un problema normal que tiene solución.

Esta guía está pensada para que, incluso sin ser un experto técnico, puedas entender cómo funciona la base de datos de PrestaShop y aplicar las mejores prácticas para mantenerla rápida y eficiente. Vamos a centrarnos en la optimización, el rendimiento y el uso inteligente de MySQL.


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

Imagina tu base de datos como el almacén de tu tienda. Cada vez que un cliente visita tu web, el sistema tiene que ir a ese almacén a buscar productos, precios, imágenes, reseñas, pedidos antiguos... Si el almacén está lleno de cajas vacías, muebles rotos y papeles viejos, tardará mucho en encontrar lo que necesita.

PrestaShop, por su naturaleza, acumula mucha información innecesaria: versiones antiguas de productos, carritos abandonados, sesiones de visitantes, registros de errores, etc. Si no limpias y organizas periódicamente, tu MySQL empieza a sufrir y el rendimiento general de la tienda se desploma.

Los beneficios de una base de datos optimizada son claros:

  • Velocidad de carga: Las páginas se abren hasta un 50% más rápido.
  • Mejor experiencia de usuario (UX): Los clientes no se aburren esperando.
  • Mejor SEO: Google penaliza las webs lentas. Una base de datos rápida ayuda a tu posicionamiento.
  • Menos carga en el servidor: Tu hosting lo agradecerá y podrás soportar más visitas simultáneas.

Paso 1: Identificar el estado actual de tu base de datos

Antes de empezar a limpiar, necesitas saber qué tamaño tiene tu base de datos y qué tablas están más pesadas.

### Acceder a la base de datos desde el panel de control

La forma más segura de hacer esto es a través de phpMyAdmin, una herramienta que viene incluida en la mayoría de los paneles de hosting.

  1. Accede a tu panel de hosting (cPanel, Plesk, o Syspanel — recuerda que el acceso a Syspanel es por el puerto 2106).
  2. Busca la sección de Bases de Datos y haz clic en phpMyAdmin.
  3. Selecciona la base de datos de tu PrestaShop (normalmente se llama algo así como tu_tienda_prestashop).
  4. Verás una lista de todas las tablas. Al lado de cada una, aparece su Tamaño y el Número de registros.

[TIP] Las tablas que más suelen pesar son: ps_connections, ps_connections_source, ps_guest, ps_statssearch, ps_session y ps_log. Anota su tamaño para comparar después de la limpieza.

### ¿Qué tablas son las más problemáticas?

  • ps_session: Guarda las sesiones de los visitantes. Si tienes mucho tráfico, esta tabla puede crecer exponencialmente.
  • ps_connections y ps_connections_source: Registran cada visita y de dónde viene. Muy útil para estadísticas, pero se acumula rápido.
  • ps_cart: Carritos abandonados. Se quedan para siempre si no los limpias.
  • ps_log: Errores y mensajes del sistema. A menudo están llenos de warnings sin importancia.
  • ps_search_index: Índice de búsqueda. Si cambias muchos productos, se llena de datos obsoletos.

Paso 2: Limpieza manual desde el Back Office de PrestaShop

PrestaShop ya incluye algunas herramientas básicas de limpieza. No son las más potentes, pero son un buen punto de partida para usuarios no técnicos.

### Borrar carritos abandonados antiguos

  1. Ve a Clientes > Carritos.
  2. Filtra por fecha (por ejemplo, carritos de hace más de 30 días).
  3. Selecciona todos y bórralos.

### Limpiar logs y estadísticas

  1. Ve a Parámetros Avanzados > Registros (Logs).
  2. Haz clic en Borrar todo.
  3. Ve a Estadísticas > Estadísticas y luego a Limpieza de estadísticas (puede variar según la versión). Aquí puedes borrar datos de visitas antiguas.

### Eliminar productos y categorías no utilizados

Si tienes productos que ya no vendes, no los dejes inactivos. Bórralos definitivamente. Cada producto inactivo sigue ocupando espacio en tablas como ps_product, ps_product_lang, ps_stock_available, etc.


Paso 3: Optimización avanzada con MySQL (vía phpMyAdmin)

Aquí es donde realmente se nota la diferencia. Estos comandos SQL son seguros si sabes lo que haces. Siempre haz una copia de seguridad de tu base de datos antes de ejecutar cualquier comando.

### Vaciar tablas temporales y de sesiones

Ejecuta estos comandos SQL en la pestaña SQL de phpMyAdmin:

TRUNCATE TABLE ps_connections;
TRUNCATE TABLE ps_connections_source;
TRUNCATE TABLE ps_guest;
TRUNCATE TABLE ps_statssearch;
TRUNCATE TABLE ps_session;

[WARNING] Al truncar ps_session, todos los usuarios que estén conectados en ese momento serán desconectados. Es mejor hacerlo en horas de poco tráfico.

### Optimizar todas las tablas de golpe

Este comando reorganiza el almacenamiento físico de los datos y libera espacio. Es como desfragmentar el disco duro.

OPTIMIZE TABLE `ps_access`, `ps_address`, `ps_alias`, `ps_attachment`, `ps_attribute`, `ps_attribute_group`, `ps_carrier`, `ps_cart`, `ps_category`, `ps_cms`, `ps_configuration`, `ps_connections`, `ps_contact`, `ps_country`, `ps_currency`, `ps_customer`, `ps_customization`, `ps_delivery`, `ps_employee`, `ps_feature`, `ps_group`, `ps_image`, `ps_lang`, `ps_manufacturer`, `ps_message`, `ps_meta`, `ps_module`, `ps_newsletter`, `ps_order_detail`, `ps_order_return`, `ps_order_state`, `ps_orders`, `ps_pack`, `ps_page`, `ps_payment`, `ps_product`, `ps_product_attribute`, `ps_product_comment`, `ps_profile`, `ps_range_price`, `ps_range_weight`, `ps_referrer`, `ps_referrer_cache`, `ps_required_field`, `ps_search_index`, `ps_search_word`, `ps_specific_price`, `ps_state`, `ps_statssearch`, `ps_stock`, `ps_store`, `ps_subdomain`, `ps_supplier`, `ps_tab`, `ps_tag`, `ps_tax`, `ps_tax_rules_group`, `ps_timezone`, `ps_zone`;

[TIP] Si tu prefijo de tabla es diferente (por ejemplo, pr_ o shop_), cámbialo en el comando. El prefijo por defecto es ps_.

### Limpiar el índice de búsqueda

El índice de búsqueda de PrestaShop se regenera solo. Limpiarlo y reconstruirlo puede mejorar la velocidad de búsqueda.

TRUNCATE TABLE ps_search_index;
TRUNCATE TABLE ps_search_word;

Después, ve a Módulos > Módulos instalados, busca "Búsqueda en la tienda" y haz clic en Reconstruir índice.


Paso 4: Mantenimiento periódico con módulos

Si no quieres estar cada mes metiendo comandos SQL, existen módulos de pago y gratuitos que automatizan la optimización.

### Módulos recomendados

  • Advanced Database Cleaner: Muy popular. Te permite programar limpiezas automáticas de carritos, sesiones, logs, etc.
  • MySQL Optimizer: Se centra en ejecutar el comando OPTIMIZE TABLE de forma periódica.
  • PrestaShop Cleaner: Una opción gratuita y ligera para limpiezas básicas.

[INFO] Antes de instalar cualquier módulo, verifica que sea compatible con tu versión de PrestaShop y que tenga buenas valoraciones.


Paso 5: Configuración del servidor MySQL

A veces el problema no es la base de datos en sí, sino cómo está configurado el servidor MySQL que la aloja. Esto ya es cosa de tu hosting, pero puedes pedirle a tu proveedor que revise estos parámetros.

### Parámetros clave para PrestaShop

  • query_cache_size: Debe estar activado y tener un tamaño adecuado (por ejemplo, 128 MB).
  • tmp_table_size y max_heap_table_size: Aumentarlos (por ejemplo, a 64 MB) evita que las consultas temporales se escriban en disco.
  • innodb_buffer_pool_size: Si usas InnoDB (lo más común), este es el parámetro más importante. Debería ser al menos el 70% de tu memoria RAM disponible.

[WARNING] No modifiques estos parámetros si no sabes lo que haces. Un error puede dejar tu tienda offline. Pide ayuda a tu hosting o a un administrador de sistemas.


Preguntas Frecuentes (FAQ)

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

Depende del tráfico de tu tienda. Como mínimo, una vez al mes. Si tienes muchas visitas (más de 500 al día), hazlo cada semana.

### ¿Es seguro truncar tablas como ps_connections?

Sí, es completamente seguro. Esas tablas solo almacenan datos temporales de estadísticas y sesiones. Perderás los datos históricos de visitas, pero no afecta a productos, pedidos ni clientes.

### ¿Perderé mis pedidos o clientes si optimizo?

No. La optimización se centra en datos temporales, registros de errores, carritos abandonados y sesiones. Tus pedidos, clientes, productos y configuraciones están a salvo.

### ¿Qué hago si mi base de datos sigue siendo lenta después de optimizar?

Puede que el problema sea el servidor. Revisa si tienes suficiente RAM, si el disco es SSD, o si necesitas cambiar a un hosting más potente. También puedes contratar un servicio de Syspanel (puerto 2106) que ofrezca gestión especializada de bases de datos.

### ¿Puedo automatizar la optimización desde el cron?

Sí. Puedes crear un script PHP que ejecute los comandos SQL y configurarlo en el cron de tu servidor. Si usas Syspanel, busca la sección Tareas programadas para añadirlo fácilmente.


Conclusión

Optimizar la base de datos de tu PrestaShop no es un lujo, es una necesidad para mantener un buen rendimiento. Con solo dedicar 15 minutos al mes a limpiar tablas temporales y ejecutar el comando OPTIMIZE TABLE, notarás una mejora drástica en la velocidad de carga.

Recuerda que una tienda rápida no solo vende más, sino que también posiciona mejor en Google. No dejes que la suciedad digital frene tu negocio.

[TIP FINAL] Combina esta guía con una buena configuración de caché (como Redis o Memcached) y un hosting de calidad para obtener el máximo rendimiento. ¡Tu tienda volará!

¿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