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

Cómo optimizar una base de datos MySQL en cPanel para PrestaShop

Actualizado el 24 de febrero de 2026

¿Tu tienda PrestaShop va lenta? ¿Las páginas tardan una eternidad en cargar y los clientes abandonan el carrito? A menudo, el cuello de botella no está en el hosting ni en el diseño, sino en la base de datos MySQL. Con el tiempo, tu tienda acumula registros de sesiones, carritos abandonados, búsquedas antiguas y tablas fragmentadas que ralentizan cada consulta.

En este artículo te voy a explicar paso a paso cómo optimizar la base de datos MySQL en cPanel para PrestaShop. No necesitas ser un experto en bases de datos, solo seguir estas instrucciones sencillas. Al final, notarás una mejora notable en el rendimiento de tu tienda.


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

PrestaShop utiliza MySQL para almacenar absolutamente todo: productos, clientes, pedidos, sesiones, traducciones, configuraciones, etc. Cada vez que un usuario visita tu tienda, se ejecutan decenas de consultas SQL. Si la base de datos está desordenada o llena de basura, esas consultas tardan más, y tu web se vuelve lenta.

Los beneficios de una base de datos optimizada son:

  • Mayor velocidad de carga de páginas.
  • Menor consumo de CPU y RAM en el servidor.
  • Mejor experiencia de usuario (y mejores conversiones).
  • Menos errores de conexión a la base de datos.
  • Backups más rápidos y ligeros.

Requisitos previos: antes de empezar

Antes de tocar nada, asegúrate de tener:

  1. Acceso a cPanel (o a tu panel de hosting). Si usas Syspanel (el antiguo HestiaCP), el acceso es por el puerto 2106 (ejemplo: https://tudominio.com:2106).
  2. Credenciales de la base de datos MySQL (usuario y contraseña). Las encuentras en cPanel > Bases de datos MySQL.
  3. Un backup reciente de la base de datos. Esto es obligatorio. Si algo sale mal, podrás restaurar todo.

[WARNING] Nunca modifiques la base de datos sin un backup. Un error puede borrar productos, pedidos o configuraciones. Haz siempre una copia de seguridad antes.


Paso 1: Acceder a phpMyAdmin desde cPanel

phpMyAdmin es la herramienta gráfica que te permitirá gestionar tu base de datos MySQL fácilmente.

  1. Inicia sesión en cPanel.
  2. Busca la sección Bases de datos y haz clic en phpMyAdmin.
  3. Se abrirá una nueva pestaña. A la izquierda verás la lista de bases de datos. Selecciona la que corresponde a tu PrestaShop (normalmente se llama algo como tudominio_prestashop).

Ya estás dentro. Ahora vamos a limpiar y optimizar.


Paso 2: Limpiar tablas innecesarias de PrestaShop

PrestaShop genera mucha información temporal que no necesitas conservar. Estas tablas son las principales candidatas a limpiar:

2.1. Tabla ps_connections y ps_connections_source

Registra cada visita a tu tienda. Con el tiempo, puede tener millones de filas.

  • En phpMyAdmin, haz clic en la pestaña SQL.
  • Ejecuta el siguiente comando (reemplaza ps_ por el prefijo de tus tablas si es diferente):
    TRUNCATE TABLE ps_connections;
    TRUNCATE TABLE ps_connections_source;
    
    Esto borra todos los datos, pero conserva la estructura de la tabla.

2.2. Tabla ps_guest

Almacena información de visitantes anónimos. También puedes vaciarla:

TRUNCATE TABLE ps_guest;

2.3. Tabla ps_statssearch

Guarda cada búsqueda que hacen los usuarios en tu tienda. No es útil para el funcionamiento diario:

TRUNCATE TABLE ps_statssearch;

2.4. Tabla ps_cart y ps_cart_product

Contiene carritos abandonados. Si tienes muchos, pueden ralentizar consultas. Puedes eliminar los que tengan más de 30 días:

DELETE FROM ps_cart WHERE date_upd < DATE_SUB(NOW(), INTERVAL 30 DAY);
DELETE FROM ps_cart_product WHERE id_cart NOT IN (SELECT id_cart FROM ps_cart);

[INFO] Si usas módulos de carrito abandonado, no borres todos. Mejor conserva los recientes.

2.5. Tabla ps_sessions

Almacena sesiones de usuarios. Se regeneran constantemente, así que puedes vaciarla sin miedo:

TRUNCATE TABLE ps_sessions;

2.6. Tabla ps_mail

Registra todos los correos enviados desde PrestaShop (confirmaciones de pedido, etc.). Si tu tienda tiene años, puede ser enorme:

TRUNCATE TABLE ps_mail;

Paso 3: Optimizar todas las tablas (desfragmentación)

Cuando eliminas registros, las tablas quedan fragmentadas, como un disco duro lleno de huecos. Esto hace que las consultas sean más lentas. Para solucionarlo, debemos optimizar las tablas.

  1. En phpMyAdmin, haz clic en la pestaña Estructura de tu base de datos.
  2. Verás la lista de todas las tablas. Marca la casilla de la parte superior para seleccionarlas todas.
  3. En el menú desplegable "Con seleccionadas:", elige Optimizar tabla.

O también puedes ejecutar directamente desde SQL:

OPTIMIZE TABLE ps_access, ps_accessory, ps_address, ps_address_format, ... ;

Pero es más rápido hacerlo desde la interfaz gráfica. El proceso puede tardar unos segundos o minutos, dependiendo del tamaño.


Paso 4: Revisar y reparar tablas corruptas

A veces, por cortes de luz o errores del servidor, algunas tablas se dañan. PrestaShop puede dar errores extraños.

En phpMyAdmin:

  1. Selecciona todas las tablas (como en el paso anterior).
  2. En el menú desplegable, elige Reparar tabla.

También puedes usar SQL:

CHECK TABLE ps_product;
REPAIR TABLE ps_product;

Si alguna tabla aparece como "error", repárala inmediatamente.


Paso 5: Configurar el motor de almacenamiento InnoDB

PrestaShop funciona mejor con el motor InnoDB que con MyISAM. InnoDB soporta transacciones, claves foráneas y mejor concurrencia.

Para verificar qué motor usan tus tablas:

  1. En phpMyAdmin, ve a la pestaña Estructura.
  2. Busca la columna Motor (o Engine). Si ves MyISAM, cámbialo.

Para cambiar una tabla a InnoDB:

ALTER TABLE ps_product ENGINE=InnoDB;

Puedes hacerlo tabla por tabla o con un script. Pero cuidado: si tu hosting es muy antiguo, MyISAM puede ser más rápido en lecturas simples. En general, InnoDB es la opción recomendada para PrestaShop.


Paso 6: Ajustar parámetros de MySQL (si tienes acceso)

Si tienes acceso a la configuración de MySQL (a través de cPanel o Syspanel), puedes mejorar el rendimiento cambiando algunos valores. No todos los hostings lo permiten.

6.1. Tamaño del buffer InnoDB (innodb_buffer_pool_size)

Es la memoria que MySQL reserva para cachear datos e índices. Cuanto más grande, mejor (hasta un 70-80% de la RAM disponible). En cPanel, puedes ajustarlo desde "MySQL Configuration" o "MultiPHP INI Editor".

6.2. Límite de conexiones (max_connections)

Si tu tienda recibe mucho tráfico, aumenta este valor. Por defecto suele ser 150. Puedes subirlo a 300 o 500 si tienes RAM suficiente.

6.3. Cache de consultas (query_cache_size)

Aunque en MySQL 8 está obsoleto, en versiones anteriores ayuda mucho. Actívalo con un tamaño de 64 MB o 128 MB.

[TIP] Si no sabes cómo hacerlo, pide a tu proveedor de hosting que optimice estos parámetros. Muchos lo hacen gratis.


Paso 7: Programar limpiezas periódicas

No basta con hacerlo una vez. La base de datos se ensucia de nuevo con el tiempo. Puedes automatizar estas tareas:

7.1. Usar el módulo "Cleaner" de PrestaShop

Hay módulos gratuitos y de pago que limpian tablas automáticamente. Por ejemplo, "PrestaShop Cleaner" o "Advanced MySQL Cleaner". Configúralo para que ejecute limpiezas semanales.

7.2. Crear un cron job en cPanel

Si sabes escribir scripts, puedes crear un trabajo cron que ejecute comandos SQL de limpieza cada semana. En cPanel:

  1. Ve a Tareas programadas (Cron Jobs).
  2. Define un comando como:
    mysql -u usuario -p'contraseña' nombrebasedatos -e "TRUNCATE TABLE ps_connections;"
    
    Repite para cada tabla que quieras limpiar.

[WARNING] Guarda la contraseña entre comillas simples para evitar errores con caracteres especiales.


Paso 8: Monitorear el rendimiento después de la optimización

Una vez aplicados los cambios, verifica que todo funciona correctamente:

  1. Prueba la velocidad de tu tienda con herramientas como GTmetrix o Google PageSpeed Insights.
  2. Revisa los logs de errores de PrestaShop (en tu panel de administración > Parámetros avanzados > Registros).
  3. Comprueba que los pedidos y productos se muestran correctamente.

Si notas alguna anomalía, restaura el backup que hiciste al principio.


Preguntas frecuentes (FAQ)

¿Cada cuánto 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 una tienda con miles de visitas diarias, cada semana.

¿Puedo dañar mi tienda si optimizo mal?

Sí, por eso es obligatorio hacer un backup antes. Si solo limpias tablas temporales y optimizas, no debería pasar nada. Pero si borras tablas importantes (como ps_product o ps_orders), tu tienda dejará de funcionar.

¿La optimización de MySQL afecta al SEO?

Indirectamente, sí. Google penaliza las páginas lentas. Al mejorar el rendimiento de tu base de datos, tu tienda carga más rápido, lo que mejora la experiencia de usuario y el posicionamiento.

¿Qué hago si no tengo acceso a phpMyAdmin?

Si tu hosting no ofrece phpMyAdmin, puedes usar la línea de comandos (SSH) o pedir a tu proveedor que ejecute las consultas por ti. También puedes instalar un cliente MySQL como Adminer o DBeaver.

¿Sirve para otras plataformas además de PrestaShop?

Sí, los mismos principios aplican a WooCommerce, Magento, Joomla, etc. Solo cambian los nombres de las tablas.


Conclusión

Optimizar la base de datos MySQL en cPanel para PrestaShop no es complicado y puede marcar una gran diferencia en la velocidad de tu tienda. Siguiendo estos pasos: limpiar tablas innecesarias, desfragmentar, reparar, usar InnoDB y programar limpiezas periódicas, lograrás un rendimiento mucho mejor.

Recuerda siempre hacer backup antes de cualquier cambio y, si te sientes inseguro, pide ayuda a tu hosting. Una base de datos limpia es sinónimo de una tienda rápida y feliz.

¡Manos a la obra y a optimizar!

¿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