Sin impuesto Con impuesto

A base de dados do PrestaShop: tabelas que crescem, índices e limpeza segura

Ao fim de alguns anos, uma loja pode ter milhões de linhas que não servem para nada. Dizemos-lhe quais se podem limpar e em quais não se mexe.

Jesús Meilán
Updated: 26/09/2026 108
A base de dados do PrestaShop: tabelas que crescem, índices e limpeza segura
Share:

A base de dados do PrestaShop cresce com cada visita, não apenas com cada encomenda. Ao fim de alguns anos, é habitual encontrar tabelas com milhões de linhas de estatísticas que ninguém consulta e que tornam mais lentas as cópias de segurança e alguns ecrãs.

As tabelas que mais crescem

TabelaO que guardaPode limpar-se?
connections, connections_page, connections_sourceVisitas para as estatísticasSim, o antigo
guestUm registo por visitanteCom cuidado (os carrinhos referenciam-no)
page_viewed, statssearchEstatísticasSim, o antigo
logRegisto do back officeSim, o antigo
cart, cart_productCarrinhos, incluindo os abandonadosSó carrinhos antigos sem encomenda
mailRegisto de emails enviadosSim

Limpeza segura

  1. Cópia de segurança completa antes de mais nada.
  2. Apague por data e por lotes, não tudo de uma vez, para não bloquear a loja:
DELETE FROM ps_connections
 WHERE date_add < NOW() - INTERVAL 12 MONTH
 LIMIT 50000;
  1. Nos carrinhos, apague só os que não têm encomenda:
DELETE c FROM ps_cart c
  LEFT JOIN ps_orders o ON o.id_cart = c.id_cart
 WHERE o.id_order IS NULL
   AND c.date_upd < NOW() - INTERVAL 6 MONTH;
Não mexa em tabelas de encomendas, faturas, clientes nem stock. E cuidado com as linhas «órfãs»: apagar às cegas tudo o que não tem pai pode levar dados que um módulo usa à sua maneira. Veja antes que módulo criou cada tabela.

Consultas lentas

Ative o registo de consultas lentas do servidor MySQL ou MariaDB (slow_query_log) durante um dia de tráfego normal. As consultas que aparecem repetidas costumam vir de um módulo concreto e quase sempre se resolvem com um índice.

Afinação do servidor

Se gere o servidor, o parâmetro que mais influencia é innodb_buffer_pool_size: idealmente, grande o suficiente para que as tabelas de uso diário caibam em memória. Mas em servidores partilhados ou com pouca RAM, aumentá-lo sem medida pode deixar o sistema sem memória: ajuste-o ao tamanho real dos seus dados.

Menos dados, menos problemas

Desative as estatísticas que não usa (módulos stats*) e programe a limpeza uma vez por mês. A sua base de dados, as suas cópias e as suas migrações vão ficar mais rápidas.

Carregando...
Consentimento de cookies
Voltar ao topo