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

Cómo optimizar una base de datos MySQL para acelerar PrestaShop

Actualizado el 16 de febrero de 2026

¿Por qué tu PrestaShop va lento y cómo lo arregla la base de datos?

Cuando tu tienda online empieza a cargar lento, lo primero que pensamos es en el hosting o en las imágenes. Pero la realidad es que, en el 80% de los casos, el cuello de botella está en la base de datos MySQL. PrestaShop es un software muy completo, con cientos de tablas y relaciones, y si no las cuidamos, el rendimiento se va al suelo.

Piensa en tu base de datos como el archivador de tu tienda. Si cada vez que un cliente entra, el sistema tiene que abrir miles de carpetas desordenadas, tardará una eternidad. Optimizar la base de datos es, literalmente, poner orden en ese archivador para que las consultas sean rápidas y eficientes.

En esta guía, te voy a enseñar paso a paso, con un lenguaje muy sencillo, cómo optimizar base datos prestashop para que tu tienda vuele. No necesitas ser un experto en informática, solo seguir las instrucciones con calma. Al final, verás que mysql prestashop rendimiento no es un misterio, sino una cuestión de mantenimiento.

Antes de empezar: La regla de oro (haz una copia de seguridad)

[WARNING] Este es el paso más importante. Antes de tocar nada, haz una copia de seguridad completa de tu base de datos. Si algo sale mal, podrás restaurar todo en minutos. No lo omitas, por favor.

Puedes hacerlo desde el panel de control de tu hosting (como cPanel o Syspanel) o usando herramientas como phpMyAdmin. Busca la opción "Exportar" y descarga el archivo .sql. Guárdalo en tu ordenador y en la nube.

Paso 1: Identifica las tablas que están "enfermas"

Antes de optimizar, necesitamos saber qué tablas están fragmentadas. La fragmentación es como cuando un archivo en tu ordenador se guarda en pedazos por todo el disco. En MySQL, esto ocurre con las tablas que se actualizan constantemente (carritos, pedidos, sesiones, etc.).

Para ver el estado, abre phpMyAdmin (normalmente está en tu panel de control) y selecciona tu base de datos de PrestaShop. Luego, haz clic en la pestaña "SQL" y ejecuta este comando:

SHOW TABLE STATUS;

Verás una lista enorme de tablas. Fíjate en las columnas Data_free y Data_length. Si Data_free tiene un valor alto (por ejemplo, más de 10 MB), esa tabla está fragmentada y necesita una limpieza.

[TIP] No te asustes con la cantidad de tablas. PrestaShop tiene más de 300. Solo nos interesan las que tienen un tamaño grande o un Data_free alto.

Paso 2: Optimiza las tablas con un solo clic (o un comando)

Existen dos formas de optimizar las tablas: desde la interfaz o con un comando SQL. Vamos a ver ambas.

Optimizar desde phpMyAdmin (la forma fácil)

  1. En phpMyAdmin, haz clic en el nombre de tu base de datos (a la izquierda).
  2. Verás la lista de tablas. Haz clic en "Marcar todas" (en la parte inferior).
  3. En el menú desplegable "Con selección", elige "Optimizar tabla".
  4. ¡Listo! phpMyAdmin hará el trabajo por ti.

Este proceso es seguro y no borra datos. Solo reorganiza la información para que sea más rápida de leer.

Optimizar desde la consola SQL (la forma "pro")

Si prefieres usar el comando, ve a la pestaña "SQL" y escribe:

OPTIMIZE TABLE ps_orders, ps_cart, ps_sessions, ps_product_comment;

Puedes añadir tantas tablas como quieras, separadas por comas. Si quieres optimizar todas las tablas de golpe, puedes usar un pequeño truco en consola (pero te recomiendo la interfaz para esto).

[INFO] El prefijo de las tablas puede variar. Por defecto es ps_, pero si lo cambiaste al instalar, ajústalo. Puedes verlo en el archivo config/settings.inc.php de tu PrestaShop.

Paso 3: El motor de almacenamiento: InnoDB vs MyISAM

PrestaShop moderno usa InnoDB por defecto, y es lo correcto. InnoDB soporta transacciones y bloqueos a nivel de fila, lo que es mucho mejor para una tienda con varios usuarios a la vez.

Pero si tu tienda es antigua o migraste desde otra plataforma, es posible que tengas tablas en MyISAM. MyISAM bloquea la tabla completa cuando se escribe, lo que es un desastre para el rendimiento.

Cómo comprobar el motor de cada tabla

En la consulta SHOW TABLE STATUS; que hicimos antes, mira la columna Engine. Si ves alguna tabla con "MyISAM", vamos a cambiarla a InnoDB.

Cómo cambiar el motor a InnoDB

Usa este comando en la pestaña SQL de phpMyAdmin:

ALTER TABLE ps_orders ENGINE = InnoDB;

Repite para cada tabla que quieras cambiar. O, si quieres hacerlo rápido, puedes seleccionar todas las tablas en la interfaz y en el menú desplegable elegir "Cambiar motor" y seleccionar InnoDB.

[WARNING] Cambiar el motor de una tabla con muchos datos puede tardar unos minutos. No interrumpas el proceso ni cierres la pestaña del navegador.

Paso 4: Configura el motor de búsqueda de PrestaShop

PrestaShop tiene su propio motor de búsqueda, pero a veces es lento porque busca en todas las tablas de productos y atributos. Podemos optimizarlo para que sea más rápido.

Activar el índice de búsqueda

  1. Ve a Parámetros Avanzados > Rendimiento en tu panel de administración.
  2. Busca la sección "Índice de búsqueda".
  3. Haz clic en "Añadir al índice" para productos, categorías y atributos.
  4. Activa la opción "Búsqueda difusa" para obtener resultados más relevantes.

Este índice crea tablas auxiliares que aceleran las búsquedas. Es una de las mejores formas de acelerar prestashop base datos sin tocar código.

Paso 5: Limpia los datos basura (sesiones, carritos y logs)

Tu base de datos se llena de basura con el tiempo: sesiones de usuarios que ya no están, carritos abandonados, logs de errores, etc. Esta basura pesa y ralentiza todo.

Limpiar sesiones antiguas

Las sesiones guardan la información de los usuarios mientras navegan. Si no se limpian, se acumulan. Ejecuta este comando en SQL:

DELETE FROM ps_sessions WHERE date_add < DATE_SUB(NOW(), INTERVAL 1 DAY);

Esto borrará las sesiones de más de 24 horas. Puedes ajustar el intervalo.

Limpiar carritos abandonados

Los carritos abandonados de más de 30 días son basura. Ejecuta:

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

Limpiar logs y tablas de estadísticas

PrestaShop guarda muchos logs de errores y visitas. Puedes limpiar las tablas ps_log y ps_connections con comandos similares.

[TIP] Programa estas limpiezas con un cron job para que se ejecuten automáticamente cada semana. Tu hosting o Syspanel (recuerda, el acceso es por el puerto 2106) te permite configurar tareas programadas.

Paso 6: Ajusta los parámetros de MySQL para PrestaShop

A veces, el problema no es la base de datos en sí, sino la configuración del servidor MySQL. Aquí tienes algunos parámetros clave que puedes ajustar en el archivo my.cnf (o my.ini en Windows).

[INFO] Si usas Syspanel, puedes acceder a la configuración de MySQL desde el panel. Recuerda que el puerto de acceso a Syspanel es el 2106.

Parámetros recomendados

  • innodb_buffer_pool_size: Este es el más importante. Debe ser alrededor del 70-80% de tu memoria RAM total. Si tienes 8GB de RAM, pon 5GB o 6GB.
  • query_cache_size: Aunque está en desuso en MySQL 8, en versiones anteriores ayuda. Ponlo en 64MB o 128MB.
  • tmp_table_size y max_heap_table_size: Ponlos en 64MB o 128MB para evitar que las consultas temporales se guarden en disco.
  • max_connections: Aumenta este valor si tienes muchos visitantes. Un valor de 200-500 es bueno.

Para aplicar los cambios, reinicia MySQL. Esto no es peligroso, pero hazlo en horas de bajo tráfico.

Paso 7: Activa el caché de MySQL en PrestaShop

PrestaShop tiene un sistema de caché que guarda las consultas más frecuentes en memoria. Esto reduce la carga en la base de datos.

Cómo activar el caché

  1. Ve a Parámetros Avanzados > Rendimiento.
  2. En la sección "Caché", elige "Caché de archivos" (File System) o "Memcached" si tu hosting lo soporta.
  3. Guarda los cambios.

Con esto, las consultas a la base de datos se reducirán drásticamente, mejorando el mysql prestashop rendimiento de forma notable.

Paso 8: Usa un plugin o módulo de optimización

Existen módulos en el marketplace de PrestaShop que automatizan todo este proceso. Algunos son gratuitos y otros de pago. Busca términos como "DB optimizer" o "Cleaner".

Estos módulos suelen hacer lo siguiente:

  • Optimizan todas las tablas con un clic.
  • Limpian datos basura.
  • Reorganizan los índices.
  • Te avisan si hay tablas corruptas.

[TIP] No instales demasiados módulos de optimización a la vez. Uno bueno es suficiente.

Paso 9: Monitoriza el rendimiento después de la optimización

Después de aplicar todos estos cambios, es crucial ver si han funcionado. Puedes usar herramientas como:

  • Google PageSpeed Insights: Para ver la velocidad de carga de tu tienda.
  • GTmetrix: Para análisis detallado.
  • Pingdom: Para monitorización continua.

También puedes ver el tiempo de ejecución de las consultas en el propio PrestaShop. Ve a Parámetros Avanzados > Información y mira el tiempo de carga de la página.

Preguntas frecuentes (FAQ)

¿Con qué frecuencia debo optimizar la base de datos?

Depende del tráfico de tu tienda. Para una tienda pequeña, una vez al mes es suficiente. Para tiendas grandes o con mucho movimiento, te recomiendo hacerlo cada semana.

¿Es peligroso optimizar las tablas MySQL?

No, es un proceso seguro. Solo reorganiza los datos. Sin embargo, siempre haz una copia de seguridad antes por si acaso.

¿Qué pasa si mi tabla está corrupta?

Si ves errores como "Table is marked as crashed", debes repararla. En phpMyAdmin, selecciona la tabla y elige "Reparar tabla". Si no funciona, necesitarás usar la consola con REPAIR TABLE ps_orders;.

¿Optimizar la base de datos es lo mismo que limpiarla?

No exactamente. Optimizar es reorganizar la información para que sea más rápida de acceder. Limpiar es eliminar datos basura. Ambas son necesarias.

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

Sí, puedes usar módulos de PrestaShop que lo hacen automáticamente, o pedirle a tu proveedor de hosting que lo haga por ti.

Conclusión: La optimización es un hábito, no una solución puntual

Optimizar tu base de datos de PrestaShop no es una tarea de una sola vez. Es un mantenimiento continuo. Si sigues estos pasos de forma regular, tu tienda estará siempre rápida y ofrecerá una buena experiencia de usuario, lo que se traduce en más ventas.

Recuerda que la paciencia es clave. No esperes resultados mágicos de la noche a la mañana. La optimización es un proceso acumulativo. Empieza con los pasos más sencillos (limpiar y optimizar tablas) y ve subiendo de nivel.

[TIP] Si no te sientes seguro haciendo todo esto, contrata a un profesional o contacta con tu proveedor de hosting. Muchas veces, ellos pueden hacerlo por ti si les das acceso.

Espero que esta guía te haya sido útil. Ahora, ve y haz que tu PrestaShop vuele. ¡Tu futuro cliente te lo agradecerá con una compra!

¿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