Cómo optimizar una base de datos en PrestaShop (Plesk)
¿Por qué es importante optimizar la base de datos de PrestaShop?
Si tu tienda online va lenta, tarda en cargar el catálogo o el panel de administración se bloquea, el problema casi siempre está en la base de datos. PrestaShop guarda en las tablas MySQL toda la información de tus productos, pedidos, clientes y sesiones. Con el tiempo, esa información se acumula, se fragmenta y genera archivos temporales que ralentizan todo el sistema.
Optimizar base de datos PrestaShop no es un lujo, es una necesidad si quieres ofrecer una buena experiencia de usuario y mejorar tu posicionamiento SEO. Google penaliza las webs lentas, así que una base de datos limpia y optimizada también te ayuda a escalar posiciones en los resultados de búsqueda.
En este artículo te voy a explicar paso a paso, sin tecnicismos complicados, cómo optimizar la base de datos de tu PrestaShop alojado en un servidor Plesk. Usaremos herramientas que ya tienes a tu disposición, como phpMyAdmin, y algunos trucos que harán que tu tienda vuele.
Antes de empezar: haz una copia de seguridad
Este es el paso más importante de todos. Nunca toques la base de datos sin tener una copia de seguridad reciente. Un error al eliminar tablas o al ejecutar una consulta SQL puede dejar tu tienda inservible.
Cómo hacer una copia de seguridad en Plesk
- Entra en tu panel de Plesk.
- Ve a la sección Bases de datos.
- Localiza la base de datos de tu PrestaShop (normalmente se llama algo parecido a
prestashop_dbo el nombre que le hayas puesto al crear la tienda). - Haz clic en el icono de copia de seguridad o backup.
- Elige la opción de descargar un archivo SQL o hacer una copia completa del servidor.
[!WARNING]
No continúes leyendo sin hacer la copia de seguridad. Si algo sale mal, podrás restaurar tu tienda en minutos. Si no la haces, podrías perder todos tus datos para siempre.
Acceder a phpMyAdmin desde Plesk
phpMyAdmin es la herramienta que nos permite gestionar las tablas MySQL de forma visual, sin necesidad de escribir comandos complicados. Es como el "explorador de archivos" de tu base de datos.
Pasos para acceder
- En tu panel de Plesk, ve a Bases de datos.
- Localiza tu base de datos de PrestaShop.
- Haz clic en el enlace o icono que dice phpMyAdmin. Se abrirá una nueva pestaña en tu navegador.
- Si te pide usuario y contraseña, usa los mismos datos que configuraste al instalar PrestaShop (los encuentras en el archivo
parameters.phpde tu instalación, dentro de la carpetaapp/config).
[!TIP]
Si no recuerdas la contraseña de la base de datos, puedes cambiarla desde Plesk en la sección Bases de datos > tu base de datos > Cambiar contraseña. Eso sí, luego tendrás que actualizar el archivoparameters.phpcon la nueva contraseña.
Identificar las tablas que ralentizan tu PrestaShop
No todas las tablas de tu base de datos son igual de importantes. Algunas se llenan de información basura que solo ocupa espacio y ralentiza las consultas. Estas son las principales culpables:
Tablas de sesiones
PrestaShop guarda las sesiones de los usuarios que visitan tu tienda. Si tienes mucho tráfico, esta tabla puede crecer muchísimo. Las sesiones caducan, pero los registros antiguos no se eliminan automáticamente.
Tablas de caché
Algunas versiones de PrestaShop usan tablas de caché para acelerar las consultas. Pero si no se limpian regularmente, se convierten en un lastre.
Tablas de logs
Cada error, cada intento de acceso fallido y cada actividad del módulo de seguridad se registra en tablas de logs. Con el tiempo, estas tablas pueden tener miles o millones de registros inútiles.
Tablas temporales
MySQL crea tablas temporales durante las consultas complejas. Si no se limpian, fragmentan la base de datos.
Optimizar base de datos PrestaShop: paso a paso con phpMyAdmin
Ahora viene lo bueno. Vamos a limpiar, reparar y optimizar las tablas MySQL de tu PrestaShop usando phpMyAdmin desde Plesk. Sigue estos pasos en orden:
Paso 1: Reparar las tablas dañadas
A veces, por cortes de luz, errores del servidor o cierres bruscos, algunas tablas se corrompen. Esto genera errores de "tabla no existe" o consultas que nunca terminan.
- En phpMyAdmin, selecciona tu base de datos en el panel izquierdo.
- Verás una lista de todas las tablas de tu PrestaShop.
- Marca la casilla superior para seleccionarlas todas.
- En el menú desplegable de abajo, elige Reparar tabla.
Esto ejecutará un comando REPAIR TABLE en todas las tablas. Es un proceso seguro y rápido.
Paso 2: Optimizar todas las tablas
Optimizar una tabla es como desfragmentar un disco duro. MySQL reorganiza los datos, elimina espacios vacíos y mejora la velocidad de las consultas.
- Con todas las tablas seleccionadas (marca la casilla superior), despliega el menú de abajo.
- Elige Optimizar tabla.
Verás un mensaje de confirmación por cada tabla. Si alguna da error, no te preocupes, normalmente son tablas que no se pueden optimizar (como las de tipo VIEW).
[!INFO]
Optimizar las tablas no borra ningún dato. Solo reorganiza la información para que las consultas sean más rápidas. Es totalmente seguro.
Paso 3: Vaciar las tablas de sesiones y logs
Esta es la parte que más espacio libera. Vamos a limpiar las tablas que acumulan información basura.
Las tablas que debes vaciar (no eliminar, solo vaciar) son:
ps_connectionsyps_connections_page(estadísticas de conexiones).ps_guest(visitantes anónimos).ps_log(logs del sistema).ps_sessions(sesiones de usuarios).ps_sekeyword(palabras clave de SEO).ps_sendemail(emails enviados).
[!WARNING]
Vaciar estas tablas elimina datos de estadísticas antiguas. Si usas el módulo de estadísticas de PrestaShop para tomar decisiones de negocio, hazlo solo si no necesitas esos datos históricos.
Para vaciarlas:
- En la lista de tablas, busca
ps_sessions. - Haz clic en el botón Vaciar (tiene un icono de papelera).
- Confirma la acción.
- Repite el proceso con las demás tablas mencionadas.
Paso 4: Eliminar tablas huérfanas o innecesarias
Algunos módulos que desinstalaste dejaron tablas en tu base de datos. Estas tablas ya no se usan, pero siguen ocupando espacio y ralentizando las copias de seguridad.
Para identificarlas:
- Busca tablas que empiecen con prefijos raros como
ps_old_,ps_temp_o nombres de módulos que ya no tienes. - Si no estás seguro de si una tabla es necesaria, no la elimines. Mejor consulta con tu desarrollador o el soporte del módulo.
Para eliminarlas:
- Marca la casilla de la tabla huérfana.
- En el menú desplegable, elige Eliminar.
- Confirma en la ventana emergente.
[!WARNING]
Eliminar tablas es una acción irreversible. Si no estás 100% seguro de que una tabla no es necesaria, déjala. Es mejor perder un poco de espacio que romper tu tienda.
Optimizar base de datos PrestaShop desde el panel de administración
Plesk y phpMyAdmin no son las únicas herramientas. PrestaShop tiene su propio sistema de limpieza que puedes usar una vez al mes.
Usar el módulo de mantenimiento
- Entra en el panel de administración de tu PrestaShop (
/admin123o la URL que configures). - Ve a Parámetros avanzados > Rendimiento.
- Haz clic en Vaciar la caché (tanto la de Smarty como la de la base de datos).
- En Parámetros avanzados > Base de datos, encontrarás la opción de Optimizar la base de datos. Úsala con cuidado, solo si sabes lo que haces.
Activar el modo mantenimiento mientras optimizas
Si tu tienda tiene mucho tráfico, te recomiendo activar el modo mantenimiento mientras realizas la optimización. Así evitarás que se generen nuevas sesiones y datos mientras trabajas.
- En el panel de administración, ve a Parámetros avanzados > Mantenimiento.
- Activa el modo mantenimiento.
- Cuando termines, desactívalo.
Consejos avanzados para mejorar el rendimiento de tu PrestaShop
Además de optimizar las tablas MySQL, hay otras acciones que puedes hacer para que tu tienda vaya más rápida:
1. Activar el caché de MySQL
En Plesk, puedes configurar MySQL para que use más memoria caché. Esto reduce el tiempo de respuesta de las consultas.
2. Usar un plugin de caché
PrestaShop tiene módulos de caché como Cache::getInstance o módulos de terceros como Varnish. Si tu servidor lo permite, activa uno.
3. Limpiar la carpeta var/cache
A veces, los archivos de caché en el servidor (no en la base de datos) también ralentizan la tienda. Puedes eliminarlos manualmente:
- Conecta por FTP o el administrador de archivos de Plesk.
- Ve a la carpeta
/var/cachedentro de tu instalación de PrestaShop. - Elimina todos los archivos de la carpeta
prodydev.
[!TIP]
No te preocupes, PrestaShop regenerará estos archivos automáticamente la próxima vez que cargue una página.
4. Programar la optimización automática
Plesk te permite programar tareas cron. Puedes crear un script que ejecute la optimización de tablas MySQL una vez al mes sin que tengas que hacerlo manualmente.
En Plesk, ve a Herramientas y utilidades > Programador de tareas y crea una tarea que ejecute el comando:
mysqlcheck -u usuario -pcontraseña --optimize nombre_base_datos
[!WARNING]
Este comando requiere que escribas la contraseña en texto plano en la tarea cron. Asegúrate de que el archivo de la tarea solo sea legible por el usuario root.
Preguntas frecuentes sobre optimizar base de datos PrestaShop
¿Con qué frecuencia debo optimizar la base de datos?
Depende del tamaño de tu tienda y del tráfico. Para una tienda pequeña o mediana, una vez al mes es suficiente. Para tiendas grandes con mucho tráfico, te recomiendo hacerlo cada semana.
¿La optimización de la base de datos mejora el SEO?
Sí, indirectamente. Una base de datos optimizada hace que las páginas carguen más rápido. Google usa la velocidad de carga como factor de posicionamiento, así que una tienda más rápida suele tener mejores posiciones.
¿Qué pasa si no tengo Plesk sino Syspanel?
Si tu hosting usa Syspanel (antes conocido como HestiaCP), el proceso es muy similar. Accede a tu panel en el puerto 2106 (por ejemplo, https://tu-dominio.com:2106), busca la sección de bases de datos y desde ahí podrás acceder a phpMyAdmin y seguir los mismos pasos.
¿Puedo optimizar la base de datos sin phpMyAdmin?
Sí, puedes usar la línea de comandos SSH si tienes acceso. Pero para la mayoría de usuarios, phpMyAdmin desde Plesk es mucho más fácil y visual.
¿Qué es el prefijo ps_ en las tablas?
Es el prefijo por defecto que usa PrestaShop para sus tablas. Si durante la instalación cambiaste el prefijo, tus tablas se llamarán diferente (por ejemplo, shop_products en lugar de ps_products).
Resumen final: tu checklist de optimización
Para que no se te olvide nada, aquí tienes una lista rápida de todo lo que debes hacer:
- Haz una copia de seguridad de tu base de datos en Plesk.
- Accede a phpMyAdmin desde Plesk.
- Repara todas las tablas.
- Optimiza todas las tablas.
- Vacía las tablas de sesiones, logs y conexiones.
- Elimina tablas huérfanas de módulos desinstalados.
- Vacía la caché desde el panel de administración de PrestaShop.
- Activa el modo mantenimiento si tu tienda tiene mucho tráfico.
- Programa una tarea cron en Plesk para optimizar automáticamente cada mes.
Siguiendo estos pasos, tu tienda PrestaShop cargará más rápido, tus clientes estarán más contentos y tu SEO mejorará notablemente. No es complicado, solo requiere que dediques unos minutos cada mes a mantener tu base de datos limpia y saludable.
Si tienes dudas o tu caso es más complejo, no dudes en contactar con el soporte técnico de tu hosting. Ellos podrán ayudarte con acciones más avanzadas como ajustar la configuración de MySQL o migrar a un servidor más potente.
