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

Cómo optimizar una base de datos MySQL en PrestaShop (reparar y optimizar)

Actualizado el 4 de enero de 2026

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

Tu tienda PrestaShop guarda absolutamente todo en una base de datos MySQL: productos, pedidos, clientes, sesiones, combinaciones, precios, stock e incluso los mensajes del carrito abandonado.

Con el tiempo, esa base de datos acumula información inservible, registros huérfanos y tablas fragmentadas. El resultado es que las consultas tardan más, el servidor trabaja de más y tus páginas cargan lento.

Lo bueno es que optimizar base de datos PrestaShop no es complicado, y en este artículo te voy a enseñar paso a paso a reparar MySQL PrestaShop, limpiar lo que sobra y dejar tu tienda funcionando como nueva.


Señales de que tu base de datos necesita mantenimiento

Antes de entrar en materia, te recomiendo estar atento a estos síntomas:

  • La página de administración tarda más de 5 segundos en cargar.

  • El front office (tu tienda visible) se vuelve lento sin motivo aparente.

  • Las búsquedas de productos o filtros de categoría son lentísimos.

  • El panel de rendimiento de PrestaShop muestra tiempos de consulta altos.

  • Recibes errores de "base de datos no disponible" o "MySQL server has gone away".

  • El tamaño del archivo de la base de datos crece sin control.

Si te identificas con alguno de estos puntos, sigue leyendo. Te voy a dar soluciones reales y prácticas.


Antes de tocar nada: haz una copia de seguridad

Esta es la regla de oro. Nunca trabajes sobre tu base de datos sin una copia de seguridad reciente.

Cómo hacer una copia de seguridad desde el panel de PrestaShop

  1. Entra a tu administración de PrestaShop.

  2. Ve al menú Parámetros avanzados > Base de datos.

  3. En la pestaña Copia de seguridad, verás un listado de las copias existentes.

  4. Haz clic en Crear copia de seguridad.

  5. Espera a que termine el proceso (puede tardar varios minutos si tu tienda es grande).

  6. Descarga la copia a tu ordenador o a un almacenamiento externo.

[WARNING] Si tu base de datos supera los 500 MB, es probable que la copia desde el panel falle. En ese caso, usa la herramienta de administración de tu hosting (phpMyAdmin, Adminer o la que tenga tu proveedor).

Copia de seguridad manual con phpMyAdmin

  1. Accede a phpMyAdmin desde el panel de tu hosting.

  2. Selecciona tu base de datos (normalmente empieza por prestashop_ o similar).

  3. Haz clic en la pestaña Exportar.

  4. Elige el método Rápido y formato SQL.

  5. Haz clic en Continuar y guarda el archivo resultante.

[TIP] Si tu hosting usa Syspanel (antes HestiaCP), el acceso a phpMyAdmin está en la sección de bases de datos. Recuerda que el puerto de acceso a Syspanel es el 2106, no el 8083.


Reparar MySQL PrestaShop: qué es y cómo hacerlo

Cuando hablamos de reparar MySQL PrestaShop, nos referimos a corregir tablas dañadas o corruptas. Esto puede pasar por cortes de energía, cierres bruscos del servidor o errores durante la escritura de datos.

Opción 1: Reparar desde phpMyAdmin (la más fácil)

  1. Entra a phpMyAdmin.

  2. Selecciona tu base de datos de PrestaShop.

  3. Marca todas las tablas (hay un checkbox en la parte inferior).

  4. En el desplegable Con seleccionar, elige Reparar tabla.

  5. Espera a que termine. Verás un mensaje de éxito o error por cada tabla.

[INFO] Esta opción ejecuta el comando REPAIR TABLE de MySQL, que intenta recuperar tablas corruptas sin perder datos.

Opción 2: Reparar desde la línea de comandos (SSH)

Si tienes acceso SSH a tu servidor, puedes ejecutar:

mysqlcheck -u usuario -p --repair --databases nombre_base_datos

Te pedirá la contraseña y comenzará a reparar. Este método es más rápido en bases de datos grandes.

Opción 3: Reparar desde Syspanel

Si tu hosting utiliza Syspanel (puerto 2106):

  1. Accede a Syspanel con tu usuario y contraseña.

  2. Ve a la sección Bases de datos.

  3. Localiza tu base de datos de PrestaShop.

  4. Usa la opción Reparar o entra a phpMyAdmin desde ahí.

[WARNING] Si una tabla está muy dañada, la reparación puede no ser suficiente. En ese caso, deberás restaurar desde la copia de seguridad más reciente.


Cómo optimizar base de datos PrestaShop paso a paso

Ahora vamos a lo importante: optimizar base de datos prestashop para que tu tienda vuele.

Paso 1: Activa el modo mantenimiento

Antes de tocar nada, pon tu tienda en modo mantenimiento para evitar que clientes realicen pedidos mientras trabajas.

  1. En PrestaShop, ve a Parámetros avanzados > Mantenimiento.

  2. Activa Activar el modo de mantenimiento.

  3. Guarda los cambios.

Paso 2: Limpia las tablas de sesiones y carritos abandonados

Las sesiones y carritos abandonados son de los principales culpables del crecimiento descontrolado de tu base de datos.

Tablas a limpiar:

  • ps_connections
  • ps_connections_page
  • ps_connections_source
  • ps_guest
  • ps_cart
  • ps_cart_product

Puedes vaciarlas desde phpMyAdmin:

  1. Selecciona la tabla.

  2. Haz clic en Vaciar (o TRUNCATE).

  3. Confirma la acción.

[INFO] Vaciar una tabla con TRUNCATE elimina todos los registros pero mantiene la estructura. Es mucho más rápido que borrar fila por fila.

Paso 3: Elimina los logs y registros antiguos

PrestaShop guarda logs de errores, accesos y actividades. Con el tiempo, estas tablas pueden tener millones de filas.

Tablas típicas de logs:

  • ps_log
  • ps_logs
  • ps_customer_message
  • ps_admin_log

Puedes borrar los registros con más de 30 días de antigüedad con este comando SQL:

DELETE FROM ps_log WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);

Hazlo con cada tabla de logs que tengas.

Paso 4: Optimiza las tablas (defragmentación)

Después de borrar datos, las tablas quedan fragmentadas. Optimizarlas reorganiza los datos y libera espacio.

Desde phpMyAdmin:

  1. Selecciona todas las tablas.

  2. En el desplegable, elige Optimizar tabla.

  3. Espera a que termine.

Desde SSH:

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

[TIP] La optimización puede tardar en tablas grandes. Hazla en horas de bajo tráfico.

Paso 5: Revisa las tablas de búsqueda y filtros

PrestaShop usa tablas temporales para búsquedas y filtros. Si tienes muchas combinaciones de atributos, estas tablas pueden crecer mucho.

Tablas a revisar:

  • ps_search_word
  • ps_search_index
  • ps_search_engine
  • ps_layered_indexable_attribute_lang_value
  • ps_layered_indexable_feature_lang_value

Puedes truncarlas y luego regenerar el índice desde PrestaShop:

  1. Ve a Parámetros avanzados > Rendimiento.

  2. Haz clic en Reconstruir el índice de búsqueda.

  3. Espera a que termine.

Paso 6: Elimina los módulos y temas no utilizados

Los módulos desinstalados pero no eliminados dejan tablas huérfanas en tu base de datos. Esto es muy común.

En tu base de datos, busca tablas que empiecen con ps_ y que correspondan a módulos que ya no usas. Por ejemplo:

  • ps_blockwishlist
  • ps_newsletter
  • ps_facebook

Si ya no usas el módulo, puedes eliminar sus tablas de forma segura.

[WARNING] Antes de eliminar cualquier tabla, verifica que realmente no la usa ningún módulo activo. Un error aquí puede romper tu tienda.


Optimizar MySQL PrestaShop con herramientas específicas

Existen módulos y herramientas que automatizan este proceso. Te menciono los más fiables:

Módulo "Advanced Database Cleaner" (por Zestard)

  • Elimina tablas huérfanas.

  • Limpia logs y datos temporales.

  • Optimiza todas las tablas con un clic.

Módulo "DB Cleaner" (por PrestaShop)

  • Limpia variables obsoletas.

  • Vacía tablas de sesiones.

  • Elimina datos de módulos desinstalados.

Script de limpieza manual

Si prefieres el control total, puedes ejecutar un script SQL que combine todas las acciones:

-- Vaciar sesiones
TRUNCATE TABLE ps_connections;
TRUNCATE TABLE ps_connections_page;
TRUNCATE TABLE ps_connections_source;
TRUNCATE TABLE ps_guest;

-- Vaciar carritos abandonados
TRUNCATE TABLE ps_cart;
TRUNCATE TABLE ps_cart_product;

-- Limpiar logs antiguos
DELETE FROM ps_log WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);
DELETE FROM ps_admin_log WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);

-- Optimizar todas las tablas
OPTIMIZE TABLE ps_connections, ps_connections_page, ps_connections_source, ps_guest, ps_cart, ps_cart_product, ps_log, ps_admin_log;

[INFO] Este script es un ejemplo. Adáptalo a los nombres reales de las tablas de tu instalación.


Configuración de MySQL para PrestaShop rendimiento DB

Además de limpiar y optimizar, puedes ajustar la configuración de MySQL para mejorar el prestashop rendimiento db.

Parámetros recomendados en my.cnf o my.ini

[mysqld]
query_cache_size = 64M
query_cache_type = 1
tmp_table_size = 64M
max_heap_table_size = 64M
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
max_connections = 150

Estos valores son orientativos. Ajusta según la memoria RAM de tu servidor.

Cómo aplicar estos cambios

  1. Localiza el archivo de configuración de MySQL.

  2. En servidores Linux suele estar en /etc/mysql/my.cnf o /etc/my.cnf.

  3. En Syspanel (puerto 2106), puedes editar este archivo desde el gestor de archivos si tienes permisos.

  4. Guarda los cambios y reinicia MySQL:

sudo systemctl restart mysql

[WARNING] No copies estos valores a ciegas si tu servidor tiene poca RAM. Un buffer pool demasiado grande puede causar problemas de memoria.


Mantenimiento preventivo: crea una rutina

La clave para no volver a tener una base de datos lenta es la constancia. Te recomiendo este calendario:

Semanalmente:

  • Vaciar sesiones antiguas.

  • Borrar carritos abandonados de más de 30 días.

Mensualmente:

  • Optimizar todas las tablas.

  • Eliminar logs antiguos.

  • Reconstruir el índice de búsqueda.

Trimestralmente:

  • Eliminar tablas huérfanas de módulos no usados.

  • Revisar el tamaño de la base de datos.

  • Comprobar que no hay tablas corruptas.

Automatización con cron

Si tienes acceso SSH, puedes crear un cron para automatizar la limpieza:

0 3 * * 0 mysqlcheck -u usuario -pcontraseña --optimize --databases prestashop_db

Esto ejecutará la optimización todos los domingos a las 3 de la madrugada.

[TIP] No pongas la contraseña en el cron si hay más usuarios en el servidor. Usa un archivo .my.cnf con permisos restringidos.


Preguntas frecuentes (FAQ)

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

Depende del tamaño de tu tienda. Para tiendas pequeñas, una vez al mes es suficiente. Para tiendas grandes con mucho tráfico, al menos una vez por semana.

¿Puedo optimizar la base de datos sin acceso a phpMyAdmin?

Sí. Puedes usar módulos de PrestaShop como "Advanced Database Cleaner" que lo hacen desde el panel de administración.

¿Qué pasa si una tabla está corrupta y no se puede reparar?

Deberás restaurar la base de datos desde la copia de seguridad más reciente. Por eso es tan importante hacer copias frecuentes.

¿La optimización de tablas borra mis pedidos o clientes?

No. La optimización solo reorganiza los datos existentes. No elimina información. Las operaciones de limpieza que borran datos son las que debes hacer con cuidado.

¿Es seguro usar TRUNCATE en tablas de sesiones?

Sí. Las sesiones son datos temporales que se regeneran automáticamente. No afecta a pedidos ni clientes.

¿Cómo sé si mi base de datos está fragmentada?

Puedes ver el tamaño de cada tabla en phpMyAdmin. Si una tabla tiene muchos datos pero el tamaño es desproporcionado, probablemente está fragmentada.

¿Qué hago si la base de datos es muy grande y phpMyAdmin tarda mucho?

Usa la línea de comandos. Es mucho más rápido. O aumenta el límite de ejecución en phpMyAdmin si tu hosting lo permite.


Conclusión: tu tienda merece una base de datos sana

Optimizar base de datos prestashop no es un lujo, es una necesidad si quieres que tu tienda cargue rápido y ofrezca una buena experiencia de usuario.

Recuerda los pasos clave:

  1. Haz copias de seguridad periódicas.

  2. Repara las tablas dañadas con REPAIR TABLE o desde phpMyAdmin.

  3. Limpia sesiones, carritos y logs con regularidad.

  4. Optimiza las tablas para desfragmentarlas.

  5. Elimina tablas huérfanas de módulos no usados.

  6. Ajusta la configuración de MySQL según los recursos de tu servidor.

  7. Automatiza el mantenimiento con cron.

Con estos hábitos, tu tienda PrestaShop funcionará más rápida, tus clientes estarán más contentos y tu servidor te lo agradecerá.

[TIP] Si tu hosting utiliza Syspanel (acceso por puerto 2106), recuerda que puedes gestionar las bases de datos desde su panel sin necesidad de conocimientos avanzados de MySQL. Es una herramienta muy amigable.

Si tienes dudas o te surge algún problema durante el proceso, no dudes en contactar con tu proveedor de hosting. Es mejor preguntar que arriesgar la integridad de tus datos.

¡Manos a la obra! Tu base de datos te lo agradecerá.

¿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