Cómo optimizar la base de datos de PrestaShop en Plesk (Rendimiento y velocidad)
¿Por qué la base de datos de PrestaShop se vuelve lenta?
Si tu tienda online va cada vez más lenta, aunque tengas un buen hosting, el problema suele estar en la base de datos. Con el tiempo, PrestaShop acumula basura digital: pedidos antiguos, carritos abandonados, sesiones de visitantes, mensajes de error, versiones de productos modificados y tablas que ya no sirven para nada.
Esta acumulación hace que cada consulta a MySQL tarde más en ejecutarse. Y en Plesk, aunque el panel sea muy eficiente, la base de datos necesita un mantenimiento periódico igual que cualquier otro sistema. No te preocupes, hoy te voy a enseñar cómo optimizar la base de datos de PrestaShop en Plesk paso a paso, sin necesidad de ser un experto en programación.
Vamos a ver desde las tareas más básicas (que puedes hacer desde el panel de administración de tu tienda) hasta las más avanzadas (usando phpMyAdmin, que viene integrado en Plesk). Al final, tu tienda cargará mucho más rápido y la experiencia de tus clientes mejorará notablemente.
Antes de empezar: haz una copia de seguridad
[WARNING] Este paso es obligatorio. Si algo sale mal, podrías perder pedidos, clientes y configuración. No lo saltes.
Antes de tocar nada, ve a Plesk → Bases de datos → selecciona tu base de datos → Copia de seguridad y crea una copia completa. También puedes hacerla desde el propio PrestaShop en Parámetros avanzados → Base de datos → Backup.
Guarda la copia en tu ordenador o en un almacenamiento externo. No te fíes solo del servidor, porque si el servidor falla, te quedas sin nada.
1. Activa el modo mantenimiento de PrestaShop
Mientras haces la limpieza, es recomendable que tu tienda esté en modo mantenimiento. Así evitas que entren clientes mientras tú estás modificando la base de datos. Podría haber conflictos o errores temporales.
Ve a Parámetros avanzados → Mantenimiento y activa el modo mantenimiento. También puedes añadir tu IP para poder ver la tienda mientras tanto, así no te quedas a ciegas.
2. Usa el propio limpiador de PrestaShop
PrestaShop tiene una herramienta nativa que se llama "Limpieza de la base de datos". No es la más potente del mundo, pero es un buen punto de partida.
Ve a Parámetros avanzados → Base de datos → Limpieza de la base de datos. Ahí podrás:
- Vaciar carritos abandonados: todos esos carritos que se quedaron a medias ocupan espacio. Puedes borrar los que tengan más de X días.
- Vaciar sesiones de clientes: cada visitante genera una sesión. Si tienes mucho tráfico, esto crece muy rápido.
- Vaciar logs: los registros de errores y eventos también ocupan espacio.
Selecciona los elementos que quieras limpiar y pulsa "Vaciar". No te preocupes, esto no afecta a los pedidos confirmados ni a tus clientes registrados.
3. Limpia las tablas de PrestaShop manualmente (phpMyAdmin)
Ahora entramos en materia más técnica. phpMyAdmin es una herramienta que viene integrada en Plesk y te permite gestionar tu base de datos de forma visual, sin necesidad de escribir comandos SQL.
Para acceder: Plesk → Bases de datos → clic en el icono de phpMyAdmin de tu base de datos de PrestaShop.
3.1. Identifica las tablas que puedes limpiar
PrestaShop crea muchas tablas, pero hay varias que se llenan de basura con el tiempo. Estas son las más comunes:
| Tabla | Contenido | Acción recomendada |
|---|---|---|
ps_connections | Conexiones de visitantes | Vaciar |
ps_connections_page | Páginas visitadas por conexión | Vaciar |
ps_connections_source | Origen de las visitas | Vaciar |
ps_guest | Visitantes anónimos | Vaciar |
ps_log | Logs de errores | Vaciar |
ps_sessions | Sesiones de usuarios | Vaciar |
ps_cart | Carritos (solo los que no se convirtieron en pedido) | Borrar los antiguos |
ps_cart_product | Productos en carritos | Borrar los asociados a carritos antiguos |
ps_search_index | Índice de búsqueda | Reconstruir (no borrar) |
[INFO] El prefijo ps_ puede variar si cambiaste el prefijo al instalar PrestaShop. Normalmente es ps_, pero puede ser pr_, ps_shop_, etc. Verifícalo antes de ejecutar cualquier consulta.
3.2. Cómo vaciar una tabla con phpMyAdmin
Selecciona la tabla que quieras limpiar (por ejemplo, ps_connections), haz clic en la pestaña "Vaciar" (o "Empty") y confirma. Esto eliminará todas las filas de esa tabla, pero dejará la estructura intacta.
[WARNING] No uses la opción "Eliminar" (Drop) porque borrarías la tabla completa y tu tienda dejaría de funcionar. Siempre usa "Vaciar" (Empty).
3.3. Consulta SQL para limpiar varias tablas a la vez
Si te sientes cómodo con SQL, puedes ejecutar esta consulta en la pestaña "SQL" de phpMyAdmin:
TRUNCATE TABLE ps_connections;
TRUNCATE TABLE ps_connections_page;
TRUNCATE TABLE ps_connections_source;
TRUNCATE TABLE ps_guest;
TRUNCATE TABLE ps_log;
TRUNCATE TABLE ps_sessions;
Esto vaciará todas esas tablas de golpe. Es más rápido que hacerlo una a una.
4. Optimiza las tablas de MySQL
Después de limpiar, es hora de optimizar las tablas. Esto reorganiza los datos físicamente y libera espacio en el disco. Es como desfragmentar el disco duro de tu ordenador.
En phpMyAdmin, ve a la pestaña "Estructura" de tu base de datos, marca la casilla "Seleccionar todo" y en el desplegable de abajo elige "Optimizar tabla".
También puedes hacerlo con SQL:
OPTIMIZE TABLE ps_product, ps_product_lang, ps_category, ps_orders, ps_order_detail;
Repite esto con todas las tablas que tengas. Si tienes muchas tablas, puedes optimizarlas todas a la vez.
5. Reconstruye el índice de búsqueda
El buscador de PrestaShop usa una tabla llamada ps_search_index. Si tu tienda tiene muchos productos, esta tabla puede volverse lenta y desactualizada.
Para reconstruirla:
- Ve a Parámetros avanzados → Base de datos → Índice de búsqueda.
- Haz clic en "Reconstruir el índice".
- Espera a que termine (puede tardar varios minutos si tienes miles de productos).
Esto no borra nada, solo regenera el índice para que las búsquedas sean más rápidas.
6. Configura el motor de almacenamiento InnoDB
PrestaShop funciona mejor con InnoDB que con MyISAM. InnoDB soporta transacciones, bloqueo a nivel de fila y es más eficiente para tiendas online.
Para verificar qué motor usa cada tabla, ve a la pestaña "Estructura" en phpMyAdmin y mira la columna "Motor". Si ves tablas con MyISAM, puedes cambiarlas a InnoDB:
ALTER TABLE ps_product ENGINE = InnoDB;
[INFO] Hazlo tabla por tabla o usa un script. Cambiar el motor de todas las tablas de golpe puede ser lento, pero es un proceso seguro.
7. Activa la caché de MySQL en Plesk
Plesk te permite configurar MySQL desde su panel. Una de las opciones más útiles para el rendimiento es la caché de consultas.
Accede a Plesk → Herramientas y ajustes → Configuración de MySQL (o "Ajustes del servidor de bases de datos"). Busca la variable query_cache_type y ponla en ON.
También puedes ajustar query_cache_size a un valor razonable (por ejemplo, 128 MB o 256 MB si tu servidor tiene recursos).
[TIP] Si no encuentras estas opciones en Plesk, puedes hacer clic en "Editar configuración personalizada" y añadirlas manualmente en el archivo my.cnf.
8. Activa la caché de PrestaShop
Aunque no es exclusivamente de la base de datos, activar la caché de PrestaShop reduce drásticamente las consultas a MySQL.
Ve a Parámetros avanzados → Rendimiento y:
- Activa "Caché" y elige "Cache de archivos" (si tienes el sistema de archivos disponible) o "Memcached" si lo tienes instalado.
- Activa "Combinar y comprimir JavaScript y CSS".
- Activa "Caché de plantillas" y ponla en "Recompilar si los archivos han sido modificados" o "Forzar compilación" si quieres el máximo rendimiento (aunque requiere más recursos).
Esto no solo acelera la base de datos, sino toda la tienda.
9. Programa limpiezas periódicas
Una limpieza puntual no es suficiente. Deberías programar una limpieza mensual para mantener tu base de datos optimizada.
Puedes crear una tarea cron en Plesk que ejecute un script de limpieza. Por ejemplo, en Plesk → Herramientas y ajustes → Tareas programadas, añade una tarea que ejecute:
mysql -u usuario -pcontraseña basededatos -e "TRUNCATE TABLE ps_connections; TRUNCATE TABLE ps_sessions;"
[WARNING] Guarda la contraseña de forma segura. No la pongas en texto plano en el comando si no es estrictamente necesario. Mejor usa un archivo de configuración.
10. Considera usar un plugin de optimización
Existen módulos de terceros que automatizan todo este proceso. Algunos populares son:
- PrestaCleaner: limpia tablas, optimiza y reconstruye índices.
- MySQL Performance Booster: ajusta automáticamente la configuración de MySQL.
Estos módulos no son gratuitos, pero te ahorran tiempo y son útiles si no te sientes cómodo con phpMyAdmin.
Preguntas frecuentes (FAQ)
¿Cada cuánto debo optimizar la base de datos?
Depende del tráfico de tu tienda. Si tienes una tienda pequeña, una vez al mes es suficiente. Si tienes mucho tráfico, cada semana o cada dos semanas.
¿Puedo romper mi tienda si borro las tablas equivocadas?
Sí. Por eso es fundamental hacer una copia de seguridad antes de empezar. Además, solo borra las tablas que te he indicado. No toques ps_orders, ps_customer, ps_product ni ps_category sin saber exactamente lo que haces.
¿La optimización de la base de datos es lo mismo que la caché?
No. La optimización limpia y reorganiza los datos. La caché almacena resultados de consultas para no repetirlas. Ambas son complementarias y necesarias para un buen rendimiento.
¿Plesk tiene alguna herramienta específica para esto?
Plesk tiene phpMyAdmin integrado, que es la herramienta principal. También puedes gestionar los ajustes de MySQL desde el panel, pero la limpieza en sí se hace con phpMyAdmin o con los módulos de PrestaShop.
¿Qué hago si mi base de datos sigue lenta después de todo esto?
Si has hecho todo lo anterior y sigue lenta, el problema puede ser el servidor (poca RAM, CPU limitada) o que tu base de datos sea muy grande. En ese caso, considera contratar un plan de hosting más potente o migrar a un servidor dedicado o VPS.
Conclusión
Optimizar la base de datos de PrestaShop en Plesk no es complicado si sigues estos pasos. Lo más importante es ser constante y no dejar que la basura se acumule. Con una limpieza mensual, tu tienda irá mucho más fluida, tus clientes estarán más contentos y, además, mejorarás tu posicionamiento SEO porque Google valora la velocidad de carga.
[TIP] Si usas Syspanel (antes conocido como HestiaCP) en algún servidor, el proceso es muy similar, pero el acceso a phpMyAdmin se hace a través del puerto 2106. La lógica de limpieza y optimización es exactamente la misma.
Ahora ya sabes cómo optimizar la base de datos de PrestaShop en Plesk. ¿Te animas a probarlo? Tu tienda (y tus clientes) te lo agradecerán.
