« Todos los artículos

Cómo limpiar la base de datos de PrestaShop y mantener tu tienda rápida

Tu base de datos de PrestaShop crece cada día, incluso cuando no vendes nada. Descubre qué tablas crecen más, qué puedes borrar sin peligro y cómo hacerlo sin riesgos.

Una tienda PrestaShop acumula muchos datos sin que te des cuenta. Cada visita, cada búsqueda y cada página que no existe se guarda en algún sitio. Al cabo de unos años, la base de datos puede ocupar varios gigas, aunque tus productos y pedidos solo sean una pequeña parte.

No es solo espacio desperdiciado. Las tablas grandes hacen que las copias de seguridad sean lentas, que las actualizaciones den más miedo y que algunas páginas del back office vayan notablemente más lentas.

¿Qué tablas crecen más rápido?

En la mayoría de las tiendas, los principales culpables están en el mismo sitio:

  1. ps_connections, con ps_connections_page y ps_connections_source: una fila por cada visita, bots incluidos.
  2. ps_guest: visitantes anónimos que nunca crearon una cuenta.
  3. ps_statssearch: todos los términos que tus visitantes han buscado.
  4. ps_pagenotfound: un registro de cada página 404.
  5. ps_mail: un registro de cada correo que ha enviado tu tienda.

Pasados unos meses, ya no necesitas ninguno de estos datos para que tu tienda funcione. Tus pedidos, clientes y productos están en tablas completamente distintas.

¿Qué puedes borrar sin peligro?

Una buena regla: guarda estadísticas y registros mientras los uses de verdad, por ejemplo 90 días, y borra el resto. Ten en cuenta dos cosas:

  1. Borra solo los invitados anónimos, nunca los que están vinculados a una cuenta de cliente.
  2. Conserva los invitados con un carrito reciente; si no, un visitante que acaba de añadir algo a su carrito lo perderá.

También puedes eliminar las reglas de precios caducadas y la caché de la búsqueda por facetas. PrestaShop vuelve a generar esa caché automáticamente.

Cómo hacerlo de forma segura

1. Haz primero una copia de seguridad

Nunca limpies sin copia de seguridad. Si algo sale mal, simplemente restauras las tablas.

2. Comprueba antes qué se va a borrar

Revisa cuántas filas se eliminarán en cada tabla. Si de repente ves una cifra inesperadamente alta, revisa primero tu configuración.

3. Borra en lotes pequeños

Un solo DELETE sobre millones de filas puede bloquear tu tienda durante minutos. Mejor borra en lotes de unos pocos miles de filas.

4. Reconstruye el índice de búsqueda

Un índice de búsqueda actualizado hace que el buscador de tu tienda vuelva a coincidir con tu catálogo actual.

5. Devuelve el espacio al disco

MySQL y MariaDB no devuelven por sí solos el espacio de las filas borradas. Si quieres que los archivos de la base de datos ocupen realmente menos, ejecuta después OPTIMIZE TABLE en las tablas más grandes, por ejemplo desde phpMyAdmin.

¿A mano o con un módulo?

Todo esto se puede hacer con consultas SQL en phpMyAdmin, pero basta un WHERE equivocado para perder datos. Además, tienes que repetirlo cada pocos meses.

Por eso creamos Cloverfield Database Clean-up. El módulo hace una copia de seguridad con un clic, muestra de antemano cuántas filas perderá cada tabla, limpia en lotes de 2000 filas y reconstruye el índice de búsqueda. Las copias se restauran desde el mismo módulo, y también es compatible con multitienda.

En resumen

  1. Los registros y las estadísticas hacen crecer tu base de datos sin que lo notes.
  2. Guarda solo lo que realmente usas, por ejemplo los últimos 90 días.
  3. Siempre primero una copia de seguridad y después limpiar en lotes pequeños.
  4. Repítelo unas cuantas veces al año y tu tienda seguirá siendo rápida.