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

Cómo optimizar bases de datos MySQL en PrestaShop para mejorar el rendimiento

Actualizado el 14 de octubre de 2025

¿Por qué tu PrestaShop va lento? El culpable suele estar en la base de datos

Si notas que tu tienda tarda en cargar, que el panel de administración va pesado o que las páginas de producto se quedan "pensando", el problema casi siempre está en la base de datos. PrestaShop es un CMS muy potente, pero también es muy exigente con MySQL. Cada visita, cada carrito, cada pedido y cada módulo genera consultas que, si no se gestionan bien, acaban convirtiendo tu tienda en un caracol digital.

La buena noticia es que optimizar base datos prestashop no requiere ser un gurú de la programación. Con unas cuantas tareas de mantenimiento periódicas, puedes mejorar rendimiento prestashop de forma notable, incluso si tu tienda ya tiene muchos productos y pedidos acumulados.

En esta guía te voy a explicar, paso a paso y sin tecnicismos innecesarios, cómo poner a punto tu MySQL para que tu tienda vuele. Vamos a ello.

Primero, entiende qué está pasando

Cuando instalas PrestaShop, se crean más de 200 tablas en tu base de datos. Cada tabla guarda información: productos, categorías, clientes, pedidos, sesiones, búsquedas, etc. Con el tiempo, estas tablas se llenan de datos basura, registros huérfanos y fragmentación interna.

Imagina que tu base de datos es un archivador. Al principio, todo está ordenado. Pero tras meses de uso, los cajones están llenos de papeles que no sirven, duplicados y carpetas mal colocadas. Buscar un documento lleva mucho más tiempo. Eso es exactamente lo que ocurre con tu MySQL.

Los síntomas más comunes de una base de datos hinchada son:

  • Tiempos de carga superiores a 3-4 segundos.
  • Tarda mucho en guardar un producto o modificar un pedido.
  • El back-office se bloquea o va muy lento.
  • La tienda da errores 500 o de conexión a la base de datos.
  • El consumo de CPU del servidor se dispara sin motivo aparente.

Si te identificas con alguno de estos síntomas, sigue leyendo. Vamos a solucionarlo.

Antes de tocar nada: haz una copia de seguridad

Este es el paso más importante y el que más se salta la gente. NUNCA toques la base de datos sin tener una copia de seguridad reciente. Un error al borrar una tabla o al ejecutar una consulta puede dejarte la tienda inservible.

Para hacer la copia, tienes dos opciones:

  1. Desde el panel de control de tu hosting (cPanel, Syspanel, Plesk, etc.): busca la sección de "Copias de seguridad" o "Backup". En Syspanel (el panel que usamos en nuestros servidores, accesible por el puerto 2106), encontrarás la opción de exportar la base de datos completa con un clic.

  2. Desde phpMyAdmin: entra en tu base de datos, haz clic en "Exportar" y elige el método rápido. Descargarás un archivo .sql que podrás importar si algo sale mal.

[!WARNING]
No hagas la copia desde el propio PrestaShop mientras está en producción si tienes mucho tráfico. Mejor hazla en horas de baja afluencia o directamente desde el panel de tu hosting.

Una vez tengas tu copia de seguridad guardada en un lugar seguro, ya puedes empezar a trabajar con tranquilidad.

Activa el modo mantenimiento (opcional pero recomendado)

Si tu tienda tiene visitas en ese momento, es buena idea activar el modo mantenimiento mientras haces las tareas más pesadas. Así evitas que un cliente haga un pedido justo cuando estás borrando tablas o ejecutando consultas.

En PrestaShop, ve a Parámetros avanzados → Mantenimiento y activa la opción. No te olvides de desactivarlo al terminar.

Optimizar tablas phpMyAdmin: el primer paso obligatorio

Vamos con la tarea más sencilla y con mejor relación esfuerzo/beneficio. Optimizar tablas phpMyAdmin es tan fácil como hacer clic en un botón, pero los resultados son inmediatos.

¿Qué hace exactamente? MySQL, al igual que un disco duro, se fragmenta con el uso. Los datos se guardan en bloques separados que no son contiguos, y eso hace que las consultas tarden más. Al optimizar, MySQL reorganiza el almacenamiento físico de las tablas.

Cómo hacerlo paso a paso

  1. Accede a phpMyAdmin desde el panel de tu hosting. Si usas Syspanel, lo encontrarás en la sección de bases de datos (recuerda, acceso por el puerto 2106).

  2. Selecciona la base de datos de tu PrestaShop. Normalmente tendrá un prefijo como ps_ o el nombre de tu tienda.

  3. Verás una lista con todas las tablas. Marca todas haciendo clic en "Seleccionar todo" (suele estar abajo del todo).

  4. En el desplegable que aparece, elige la opción "Optimizar tabla".

  5. Ejecuta. El proceso puede tardar unos segundos o varios minutos, dependiendo del tamaño.

  6. Cuando termine, verás un mensaje de éxito con el detalle de cada tabla.

[!TIP]
Haz esta operación al menos una vez al mes. Es como pasar la aspiradora por casa: no soluciona todos los problemas, pero evita que se acumule la suciedad.

¿Y si mi tabla está corrupta?

Si al optimizar te aparece un error o un estado como "Error" o "Crash", no entres en pánico. En el mismo desplegable tienes la opción "Reparar tabla". Ejecútala y, en la mayoría de los casos, se arregla sola.

Si el problema persiste, es señal de que tu servidor MySQL está teniendo problemas más serios. Ahí ya tocaría hablar con tu proveedor de hosting.

Limpieza de tablas obsoletas y datos basura

La optimización física es solo el principio. Ahora toca limpiar la basura que se acumula en las tablas. PrestaShop guarda mucha información que no necesitas y que solo ralentiza las consultas.

Tablas que puedes vaciar sin miedo

Estas tablas acumulan datos temporales que no afectan a tu tienda si se borran:

  • ps_connections: registra cada visita a tu tienda. Con el tiempo, puede tener millones de filas.
  • ps_connections_page: relacionada con la anterior.
  • ps_connections_source: de dónde vienen las visitas (Google, Facebook, etc.).
  • ps_page_viewed: qué páginas ha visto cada visitante.
  • ps_guest: datos de visitantes anónimos.
  • ps_searchengines y ps_search_words: búsquedas internas realizadas en tu tienda.
  • ps_sessions: sesiones de usuarios. Las antiguas ya no sirven.
  • ps_sendemail y ps_mail: correos enviados, si los tienes activos.
  • ps_log: registros de errores y logs internos.

Cómo limpiarlas

Es tan fácil como ir a cada tabla, hacer clic en "Vaciar" (no "Borrar", ojo) y confirmar. Esto eliminará todas las filas pero mantendrá la estructura de la tabla.

[!WARNING]
No vacíes tablas que empiecen por ps_customer, ps_orders, ps_product o ps_category. Ahí están tus datos reales de negocio. Si las tocas, adiós tienda.

¿Cada cuánto debo hacer esto?

Depende del tráfico de tu tienda. Si tienes una tienda pequeña, una vez al trimestre es suficiente. Si tienes mucho tráfico, hazlo cada mes. Puedes programarlo en tu calendario como una tarea de mantenimiento más.

Activar la caché de MySQL en PrestaShop

PrestaShop tiene su propio sistema de caché, pero muchas veces no está activado o está mal configurado. Activar la caché de MySQL reduce drásticamente el número de consultas a la base de datos, porque los resultados de consultas repetidas se guardan en memoria.

Cómo activarla

  1. Ve a Parámetros avanzados → Rendimiento en tu back-office.

  2. Busca la sección de "Caché".

  3. Activa la opción y elige "Sistema de archivos" como método. Es el más compatible con cualquier hosting.

  4. Guarda los cambios.

[!TIP]
Si tu hosting soporta Memcached o Redis, úsalos en lugar del sistema de archivos. Son mucho más rápidos. Pregunta a tu proveedor si están disponibles.

Otras opciones de rendimiento que deberías activar

En la misma página de Rendimiento, tienes más opciones muy útiles:

  • Combinar archivos JavaScript y CSS: reduce el número de peticiones al servidor.
  • Usar compresión de páginas: activa la compresión gzip.
  • Recopilar información de rendimiento: desactívala, solo sirve para depurar.

Configurar correctamente los parámetros de MySQL

Ahora vamos a un nivel un poco más técnico, pero sigue siendo accesible. MySQL tiene una configuración que, si está mal ajustada, hace que todo vaya lento aunque tu base de datos esté limpia.

Los parámetros más importantes

  • max_connections: número máximo de conexiones simultáneas. Si tu tienda recibe muchos visitantes, este número debe ser alto.
  • key_buffer_size: memoria para índices. Es como la memoria caché de las consultas por índice.
  • query_cache_size: memoria para guardar resultados de consultas repetidas.
  • innodb_buffer_pool_size: el más importante si usas InnoDB (que es el motor por defecto en PrestaShop). Debe ser aproximadamente el 70% de la memoria RAM disponible en tu servidor.

¿Dónde se cambian estos valores?

  • Si tienes acceso al archivo my.cnf o my.ini del servidor, puedes editarlo directamente. Esta es la opción más recomendada.
  • Si usas Syspanel (puerto 2106), en la sección de MySQL encontrarás la opción de editar la configuración de forma gráfica.
  • En cPanel, busca "Configuración de MySQL" o "MySQL Configuration".

[!WARNING]
Cambiar estos valores sin saber lo que haces puede tumbar el servidor. Si no estás seguro, pide ayuda a tu proveedor de hosting. Un valor demasiado alto en innodb_buffer_pool_size puede agotar la memoria RAM y provocar caídas.

Valores recomendados para una tienda pequeña/mediana

  • innodb_buffer_pool_size: 256 MB a 512 MB.
  • query_cache_size: 64 MB a 128 MB.
  • key_buffer_size: 32 MB a 64 MB.
  • max_connections: 100 a 200.

Para una tienda grande, estos valores deberían ser más altos. Aquí sí que necesitas un servidor dedicado o VPS con recursos suficientes.

El sobrecito de los módulos: elimina los que no usas

Cada módulo instalado en PrestaShop añade tablas, consultas y archivos. Si tienes 20 módulos instalados pero solo usas 5, el resto está lastrando tu tienda.

Cómo saber qué módulos puedes eliminar

  1. Ve a Módulos → Módulos y servicios en tu back-office.

  2. Revisa la lista y desinstala (no solo desactives) los que no uses.

  3. Si no sabes para qué sirve un módulo, busca en Google su nombre y "PrestaShop". Si no lo usas, fuera.

  4. Después de desinstalar, la tabla de ese módulo puede quedar huérfana. Puedes borrarla desde phpMyAdmin, pero solo si estás seguro de que no la necesitas.

[!INFO]
Algunos módulos, aunque los desinstales, dejan sus tablas en la base de datos. Para eliminarlas, tendrás que hacerlo manualmente desde phpMyAdmin. Los nombres suelen empezar por el prefijo del módulo (ej: ps_ + nombre del módulo).

Mantén PrestaShop actualizado

Cada versión de PrestaShop incluye mejoras de rendimiento y corrección de errores. Las versiones antiguas tienen consultas menos eficientes y problemas de seguridad que pueden ralentizar tu tienda.

  • Si estás en PrestaShop 1.6, plantéate migrar a 1.7 o 8.x.
  • Si estás en 1.7, actualiza a la última versión menor disponible.
  • Las actualizaciones de seguridad también mejoran el rendimiento, porque corrigen fallos que pueden estar generando consultas innecesarias.

[!TIP]
Antes de actualizar, haz siempre una copia de seguridad y prueba en un entorno de desarrollo si es posible.

El mantenimiento preventivo: crea una rutina

Todo esto no sirve de nada si lo haces una vez y te olvidas. El rendimiento de MySQL se degrada con el tiempo, así que necesitas una rutina.

Rutina mensual

  • Optimizar tablas phpMyAdmin.
  • Vaciar tablas de conexiones y búsquedas.
  • Revisar si hay módulos que ya no usas.
  • Comprobar que la caché está activada.

Rutina trimestral

  • Revisar el tamaño de la base de datos. Si ha crecido más de un 20%, algo está acumulando basura.
  • Analizar las consultas lentas si tu hosting te da acceso a logs.
  • Revisar la configuración de MySQL por si necesitas ajustar valores.

Rutina anual

  • Migrar a la última versión estable de PrestaShop.
  • Hacer una limpieza profunda de tablas huérfanas.
  • Revisar el plan de hosting: si tu tienda ha crecido, quizá necesites más recursos.

Respondiendo a las preguntas más frecuentes (FAQ)

¿Cuánto tarda en notarse la mejora?

La optimización de tablas y la limpieza de datos basura se notan inmediatamente. La activación de la caché puede tardar unos minutos en hacer efecto, pero también es casi instantánea.

¿Puedo romper mi tienda si hago esto?

Si sigues los pasos de esta guía y haces copia de seguridad antes, el riesgo es mínimo. Las únicas operaciones peligrosas son borrar tablas que no debes o cambiar valores de configuración de MySQL sin saber.

¿Es lo mismo optimizar que limpiar?

No exactamente. Optimizar reorganiza los datos físicos de las tablas (como desfragmentar un disco). Limpiar elimina datos que no sirven (como tirar la basura). Ambas cosas son necesarias.

¿Puedo automatizar la optimización?

Sí, puedes crear un cron job que ejecute la sentencia OPTIMIZE TABLE sobre todas las tablas de tu base de datos. Pero si no tienes experiencia con cron jobs, mejor hazlo manualmente o pide ayuda a tu hosting.

¿Por qué mi base de datos sigue lenta después de optimizar?

Si ya has optimizado, limpiado y activado la caché y sigue yendo lenta, el problema puede estar en:

  • El servidor en sí (poca RAM, CPU limitada).
  • Módulos mal programados que hacen consultas ineficientes.
  • Un tema que no está optimizado.
  • Demasiados productos con imágenes pesadas.

En ese caso, toca revisar el servidor y hacer una auditoría más profunda.

Conclusión: la base de datos no es un misterio

Optimizar base datos prestashop no es una tarea reservada a expertos. Con las herramientas que tienes a mano (phpMyAdmin, el panel de tu hosting y el propio back-office de PrestaShop), puedes mantener tu MySQL en plena forma y mejorar rendimiento prestashop de forma considerable.

Recuerda los pasos clave:

  1. Copia de seguridad siempre antes de tocar nada.
  2. Optimiza las tablas regularmente desde phpMyAdmin.
  3. Limpia la basura de las tablas temporales.
  4. Activa la caché de PrestaShop.
  5. Ajusta los parámetros de MySQL según los recursos de tu servidor.
  6. Elimina módulos que no uses.
  7. Actualiza PrestaShop a la última versión.

Con esta rutina, tu tienda cargará más rápido, tus clientes estarán más contentos y Google te lo agradecerá con un mejor posicionamiento. Y si en algún momento te sientes perdido, recuerda que siempre puedes pedir ayuda a tu proveedor de hosting. Están para eso.

¿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