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

Cómo optimizar una base de datos de PrestaShop (tablas y consultas)

Actualizado el 11 de marzo de 2026

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

Cuando tu tienda online empieza a crecer, es normal que notes que las páginas tardan más en cargar. El principal culpable, en la mayoría de los casos, no es el hosting ni el tema, sino la base de datos de PrestaShop. Cada producto, pedido, cliente, sesión de carrito y mensaje de soporte se guarda en tablas. Con el tiempo, estas tablas acumulan registros obsoletos, consultas lentas y datos que ya no sirven.

Optimizar la base de datos de PrestaShop no es un lujo, es una necesidad si quieres mantener un buen rendimiento. Una base de datos ligera y bien indexada reduce el tiempo de carga de tu tienda, mejora la experiencia de usuario y, muy importante, ayuda a tu posicionamiento SEO, ya que Google penaliza las webs lentas.

En esta guía, pensada para usuarios sin experiencia técnica, te explico paso a paso cómo limpiar tablas de PrestaShop, cómo optimizar consultas MySQL y qué herramientas usar para que tu tienda vuele. Vamos a ello.


1. Antes de empezar: prepara tu entorno

Optimizar la base de datos de PrestaShop implica tocar información sensible. Un error puede dejar tu tienda inaccesible. Por eso, sigue estas recomendaciones básicas:

[WARNING] Haz siempre una copia de seguridad completa de tu base de datos antes de realizar cualquier cambio. Puedes hacerlo desde el panel de control de tu hosting (por ejemplo, Syspanel, accesible a través del puerto 2106) o con herramientas como phpMyAdmin.

1.1. Accede a tu base de datos

Para la mayoría de las acciones, usarás phpMyAdmin, una interfaz web que te permite ver y modificar las tablas de tu base de datos. Normalmente lo encuentras en el panel de tu hosting.

Si usas Syspanel, el acceso a la base de datos lo tienes en la sección "Bases de datos". El puerto de acceso a Syspanel es el 2106, así que para entrar a tu panel escribe en el navegador: https://tu-dominio.com:2106.

1.2. Identifica el prefijo de tus tablas

PrestaShop usa un prefijo para todas sus tablas, normalmente ps_ (aunque puede ser personalizado). Lo verás claramente en phpMyAdmin: tablas como ps_orders, ps_cart, ps_product, etc.


2. Limpiar tablas de PrestaShop: qué puedes borrar sin miedo

La limpieza es el primer paso para optimizar la base de datos de PrestaShop. Muchas tablas acumulan datos que ya no necesitas.

2.1. Tablas de sesiones y carritos abandonados

Las tablas ps_connections y ps_guest guardan información de las visitas anónimas. Con el tiempo, pueden tener millones de registros. Puedes vaciarlas sin problema (no afecta a pedidos ni clientes registrados).

Pasos para limpiar sesiones:

  1. En phpMyAdmin, selecciona tu base de datos.
  2. Marca la tabla ps_connections (o el prefijo que uses).
  3. Haz clic en "Vaciar" (o "Truncate").
  4. Confirma la acción.

Repite el proceso con ps_connections_page, ps_guest y ps_cart.

[INFO] La tabla ps_cart guarda carritos en curso. Si la vacías, los clientes que no han completado la compra perderán su carrito. Es recomendable hacerlo una vez al mes, pero no más seguido.

2.2. Mensajes antiguos y notificaciones

Las tablas ps_message y ps_message_readed guardan mensajes internos entre clientes y tienda. Si tienes muchos mensajes antiguos, puedes borrarlos, pero ten cuidado: si hay conversaciones importantes, expórtalas antes.

Consulta SQL para borrar mensajes antiguos:

DELETE FROM ps_message WHERE date_add < DATE_SUB(NOW(), INTERVAL 6 MONTH);

Esto elimina mensajes de más de 6 meses. Ajusta el tiempo según tus necesidades.

2.3. Tablas de logs y búsquedas

PrestaShop registra cada búsqueda que hacen los usuarios en ps_search_word y ps_search_index. Con el tiempo, esto puede ralentizar las consultas. Puedes vaciar estas tablas:

TRUNCATE TABLE ps_search_word;
TRUNCATE TABLE ps_search_index;

[TIP] Después de vaciarlas, ve a PrestaShop > Parámetros avanzados > Rendimiento y haz clic en "Vaciar el caché". Esto regenera los índices de búsqueda de forma limpia.

2.4. Tablas de estadísticas

Las tablas ps_connections, ps_statsdata y ps_goal acumulan datos de estadísticas. Si no usas el panel de estadísticas interno (porque usas Google Analytics, por ejemplo), puedes vaciarlas sin problema.


3. Optimizar consultas MySQL: los índices son tus amigos

Limpiar tablas es solo la mitad del trabajo. La otra mitad es optimizar las consultas MySQL para que las búsquedas sean más rápidas. Aquí es donde entran los índices.

3.1. ¿Qué es un índice?

Un índice es como el índice de un libro: le dice a MySQL dónde encontrar los datos sin tener que revisar todas las páginas. Si tus tablas no tienen índices en las columnas que se usan en las consultas, MySQL tiene que escanear toda la tabla, lo que es muy lento.

3.2. Añadir índices a las tablas principales

PrestaShop ya tiene índices por defecto, pero con el tiempo y las modificaciones, algunos se pierden o no son óptimos. Puedes añadir índices manualmente a las columnas más usadas.

Consulta SQL para añadir un índice a la tabla de productos:

ALTER TABLE ps_product ADD INDEX idx_reference (reference);
ALTER TABLE ps_product ADD INDEX idx_id_category_default (id_category_default);

Estas columnas (referencia y categoría por defecto) se usan en muchas consultas. Añadir índices acelera las búsquedas de productos.

3.3. Optimizar las consultas de la tabla de pedidos

La tabla ps_orders es crítica. Asegúrate de que tenga índices en id_customer y date_add:

ALTER TABLE ps_orders ADD INDEX idx_customer (id_customer);
ALTER TABLE ps_orders ADD INDEX idx_date (date_add);

3.4. Usa EXPLAIN para detectar consultas lentas

MySQL tiene una herramienta llamada EXPLAIN que te muestra cómo se ejecuta una consulta. Si ves que en la columna type aparece ALL, significa que está escaneando toda la tabla. Eso es malo.

Ejemplo:

EXPLAIN SELECT * FROM ps_orders WHERE id_customer = 5;

Si el resultado muestra type = ALL, añade un índice a id_customer como te mostré antes.


4. Herramientas y módulos para optimizar la base de datos de PrestaShop

No tienes que hacerlo todo a mano. Hay herramientas que te facilitan la vida.

4.1. El optimizador integrado de PrestaShop

PrestaShop tiene una opción nativa para optimizar la base de datos. Ve a Parámetros avanzados > Base de datos y verás una lista de tablas con su tamaño y número de registros. Puedes marcar las que quieras y hacer clic en "Optimizar".

Esto ejecuta comandos OPTIMIZE TABLE, que reorganizan el almacenamiento físico de los datos y liberan espacio.

4.2. Módulos de limpieza

Existen módulos como "DB Cleaner" o "MySQL Performance" que automatizan la limpieza y optimización. Busca en el marketplace de PrestaShop, pero asegúrate de que sean compatibles con tu versión.

4.3. phpMyAdmin: la opción manual

Si te sientes cómodo con SQL, phpMyAdmin es tu mejor amigo. Puedes ejecutar las consultas que te he mostrado y además usar la pestaña "Operaciones" para optimizar tablas individualmente.


5. Mantenimiento preventivo: rutinas recomendadas

Optimizar la base de datos de PrestaShop no es algo que hagas una vez y olvides. Es un proceso continuo.

5.1. Programa tareas automáticas

En Syspanel (recuerda, puerto 2106), puedes configurar tareas cron. Programa una tarea que ejecute una limpieza básica cada semana:

DELETE FROM ps_connections WHERE date_add < DATE_SUB(NOW(), INTERVAL 1 MONTH);

5.2. Revisa el tamaño de las tablas una vez al mes

Entra en phpMyAdmin y mira el tamaño de las tablas. Si alguna supera los 100 MB, es señal de que necesita una limpieza.

5.3. Mantén PrestaShop actualizado

Cada versión de PrestaShop incluye mejoras de rendimiento y optimización de consultas MySQL. Mantenerte actualizado es la mejor prevención.


6. Errores comunes al optimizar (y cómo evitarlos)

6.1. Borrar datos de clientes por error

Al limpiar la tabla ps_customer, podrías borrar clientes reales. Nunca vacíes esa tabla sin una copia de seguridad.

6.2. No purgar el caché después de limpiar

Después de cualquier cambio en la base de datos, ve a Parámetros avanzados > Rendimiento y vacía el caché. Si no lo haces, PrestaShop puede mostrar datos antiguos o dar errores.

6.3. Usar consultas DELETE con WHERE sin índices

Si ejecutas DELETE FROM ps_orders WHERE date_add < '2020-01-01' y no hay índice en date_add, MySQL bloqueará la tabla durante minutos. Añade el índice antes de ejecutar la consulta.


7. Preguntas frecuentes (FAQ)

7.1. ¿Cada cuánto tiempo debo optimizar la base de datos de PrestaShop?

Depende del tamaño de tu tienda. Como regla general, una limpieza ligera (sesiones y logs) cada 2 semanas, y una optimización completa (índices y tablas) una vez al mes.

7.2. ¿Optimizar la base de datos mejora el SEO?

Sí, indirectamente. Una base de datos optimizada acelera el tiempo de carga de tu tienda, y la velocidad de página es un factor de ranking para Google. Además, reduce el riesgo de errores 500.

7.3. ¿Puedo romper mi tienda si me equivoco?

Sí, pero si sigues los pasos de esta guía y haces copias de seguridad, el riesgo es mínimo. Si algo falla, restaura la copia.

7.4. ¿Qué hago si mi tabla ps_search_index es enorme?

Vacía la tabla con TRUNCATE y luego regenera el índice desde PrestaShop (Parámetros avanzados > Rendimiento > Reconstruir índice). Es normal que tarde unos minutos.

7.5. ¿Es necesario usar módulos de pago para optimizar?

No. Con las consultas SQL que te he dado y las herramientas gratuitas de PrestaShop, puedes lograr un gran rendimiento. Los módulos de pago solo añaden comodidad, no magia.


Resumen final

Optimizar la base de datos de PrestaShop es una tarea que cualquier propietario de tienda puede hacer con un poco de paciencia. Empieza por limpiar tablas de PrestaShop como sesiones y logs, luego añade índices a las columnas más usadas, y termina con un mantenimiento regular.

Recuerda: una base de datos ligera y bien indexada no solo mejora el rendimiento, sino que también contribuye a tu posicionamiento SEO. No lo dejes para mañana. Tu tienda (y tus clientes) te lo agradecerán.

[TIP] Si usas Syspanel, programa una tarea cron semanal con una consulta de limpieza básica. Así no tendrás que acordarte. Y siempre, siempre, haz una copia de seguridad antes de tocar nada.

¿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