Sin impuesto Con impuesto

Il tuo database PrestaShop cresce senza sosta: quali tabelle puoi svuotare e quali no

Un database che occupa giga non è sempre colpa degli ordini. Ci sono tabelle che crescono a ogni visita e che quasi nessuno consulta. Ti diciamo quali sono, quali si possono svuotare in sicurezza e quali non dovresti toccare mai.

Equipo Rekire
Updated: 11/10/2026 21
Il tuo database PrestaShop cresce senza sosta: quali tabelle puoi svuotare e quali no
Share:

Il backup del database richiede sempre più tempo, l'hosting avvisa che ti stai avvicinando al limite di spazio e qualche schermata del back office è lenta. Guardi cosa occupa tanto e scopri che non sono i prodotti né gli ordini: sono tabelle con nomi come connections, guest o log, con milioni di righe che nessuno ha mai guardato.

Vediamo quali tabelle crescono da sole, a cosa servono e cosa si può pulire senza perdere nulla di importante.

Prima di tutto, misura

Prima di cancellare qualsiasi cosa, ricava l'elenco delle tabelle ordinate per dimensione. Da phpMyAdmin o dallo strumento di database del tuo hosting si vede direttamente; anche con una query su information_schema.TABLES filtrando per il nome del tuo database e ordinando per DATA_LENGTH + INDEX_LENGTH. Quasi sempre poche tabelle concentrano la maggior parte dello spazio.

Negli esempi uso il prefisso ps_, che è quello predefinito; il tuo può essere un altro.

Quelle che crescono a ogni visita

ps_connections e ps_connections_source

Registrano ogni visita al negozio e la provenienza del visitatore. Le usano le statistiche interne di PrestaShop (visitatori, origini del traffico). Con il traffico dei bot crescono molto in fretta.

Si possono pulire? Sì, le righe vecchie, se non usi le statistiche interne delle visite o ti basta un periodo recente. Perderai lo storico delle visite di quei moduli di statistiche, non ordini né clienti.

ps_guest

Un record per ogni visitatore identificato tramite un cookie, con dati tecnici del browser. È collegato alle connessioni e ai carrelli.

Si può pulire? Con attenzione: solo gli ospiti che non sono associati a nessun cliente né a nessun carrello con ordine. Cancellare gli ospiti alla cieca lascia riferimenti rotti.

ps_pagenotfound, ps_statssearch e simili

Pagine non trovate e ricerche del motore di ricerca interno, se hai attivi i relativi moduli di statistiche. Sono utili per individuare link rotti e capire cosa cercano i tuoi clienti, ma le righe di anni fa lo sono raramente.

Si possono pulire? Sì, quelle vecchie. Prima, se ti interessa, esporta un riepilogo delle ricerche più frequenti.

I carrelli

ps_cart e ps_cart_product conservano tutti i carrelli creati, anche quelli che non sono mai diventati un ordine. In un negozio con anni di attività sono centinaia di migliaia.

  • I carrelli con ordine non si toccano mai. L'ordine punta al suo carrello, e molte schermate, fatture e moduli ne hanno bisogno.
  • Nemmeno i carrelli senza ordine recenti: sono quelli dei clienti che stanno acquistando adesso o che possono tornare, e quelli che usano i moduli di recupero dei carrelli abbandonati.
  • I carrelli senza ordine molto vecchi si possono eliminare, insieme alle loro righe. Verifica prima che nessun modulo li usi come riferimento (regole carrello associate, carrelli salvati, preventivi).

I log

ps_log

È il log che vedi in Parametri avanzati → Log. Lo alimentano il core e i moduli. Un modulo che scrive un messaggio a ogni visita può riempirlo in poche settimane.

Si può pulire? Sì, il back office ha un'opzione per svuotarlo. Ma prima guarda cosa lo riempie: se un messaggio si ripete migliaia di volte, c'è qualcosa da sistemare, e svuotare la tabella nasconde solo il sintomo.

ps_mail

Il registro delle e-mail inviate, se hai attivato il salvataggio delle e-mail. Utile per verificare se un'e-mail è partita, ma contiene indirizzi dei clienti.

Si può pulire? Sì, e conviene farlo con un periodo di conservazione definito. Conservare a tempo indeterminato quali e-mail sono state inviate a chi non porta nulla ed è un dato personale in più.

Tabelle dei moduli

Molti moduli hanno i propri log: chiamate alle API, sincronizzazioni, avvisi. Alcuni li ripuliscono da soli, altri no. Controlla le tabelle grandi con il prefisso di un modulo e la configurazione di ciascuno prima di cancellare a mano.

Ciò che non si tocca

Non cancellare a mano nulla di ordini, fatture, clienti o prodotti. Le tabelle degli ordini (orders, order_detail, order_history, order_invoice, order_payment…) sono collegate tra loro e con clienti, indirizzi e carrelli, e le fatture hanno obblighi legali di conservazione. Un ordine cancellato con una query lascia residui in altre tabelle, rompe la numerazione che PrestaShop calcola a partire dall'ultimo e manda fuori quadratura la contabilità.

Non conviene toccare nemmeno:

  • Clienti e indirizzi, salvo con una procedura di cancellazione dei dati su richiesta dell'interessato, che deve rispettare ciò che sei tenuto a conservare per obbligo di legge.
  • Prezzi specifici e regole carrello scadute senza verificare prima se qualcuna viene usata come modello o se un modulo dipende da esse.
  • Tabelle di configurazione con valori che non riconosci: di solito sono di moduli disinstallati, ma a volte sono di moduli attivi con nomi poco chiari.

Se il problema sono gli ordini

A volte la tabella grande è quella degli ordini, ed è logico: un negozio con anni di attività ne accumula molti. Lì non si tratta di cancellare ma di archiviare: togliere gli ordini vecchi dalle tabelle attive perché il back office lavori con meno righe, conservandoli completi e recuperabili.

Come fare la pulizia

  1. Backup completo del database, verificato.
  2. Prova su una copia del negozio le query di pulizia e controlla che tutto continui a funzionare: ordini, carrelli dei clienti, statistiche.
  3. Cancella a lotti, non milioni di righe in una sola query, che può bloccare la tabella e il negozio.
  4. Ottimizza le tabelle dopo aver cancellato molto, per recuperare lo spazio su disco.
  5. Correggi la causa: disattiva le statistiche che non usi, frena i bot che generano migliaia di connessioni, sistema il modulo che riempie il log.
  6. Pianifica la pulizia perché tra qualche anno non serva un'altra grande pulizia.

Come risolverlo in PrestaShop

RKR Order Archive toglie dalle tabelle attive gli ordini più vecchi del numero di giorni che stabilisci (180 per impostazione predefinita), negli stati che scegli, e li conserva completi in tabelle di archivio: righe, storico, fatture, pagamenti, resi, note di credito, carrello e messaggi. Ha una modalità di simulazione per vedere quanti ordini e righe sposterebbe senza toccare nulla, cron con token, report via e-mail, ripristino esatto con lo stesso numero d'ordine e cancellazione definitiva bloccata per impostazione predefinita. Non archivia l'ordine con l'ultimo numero di fattura, documento di trasporto o ordine, così PrestaShop non ripete la numerazione. Per le altre tabelle (connessioni, ospiti, carrelli, log), con un pacchetto di ore di assistenza di Rekire misuriamo il tuo database, prepariamo la pulizia su una copia e la lasciamo pianificata.

Caricamento...
Consenso sui cookie
Torna all'inizio