« Alle artikelen

PrestaShop database opschonen: zo houd je je webshop snel

Je PrestaShop-database groeit elke dag, ook als je niets verkoopt. Lees welke tabellen het grootst worden, wat je veilig kunt opruimen en hoe je dat zonder risico doet.

Een PrestaShop-webshop verzamelt ongemerkt veel gegevens. Elk bezoek, elke zoekopdracht en elke pagina die niet bestaat wordt ergens opgeslagen. Na een paar jaar kan de database daardoor gigabytes groot zijn, terwijl je producten en bestellingen maar een fractie daarvan innemen.

Dat is niet alleen zonde van de ruimte. Grote tabellen maken back-ups traag, updates spannender en sommige pagina's in je backoffice merkbaar langzamer.

Welke tabellen groeien het hardst?

Bij de meeste shops zitten de grootste boosdoeners in dezelfde hoek:

  1. ps_connections, met ps_connections_page en ps_connections_source: een regel voor elk bezoek, ook van bots.
  2. ps_guest: anonieme bezoekers die nooit een account hebben aangemaakt.
  3. ps_statssearch: alle zoektermen die bezoekers ooit hebben ingetypt.
  4. ps_pagenotfound: een log van elke 404-pagina.
  5. ps_mail: een overzicht van elke e-mail die je shop heeft verstuurd.

Geen van deze gegevens heb je na een paar maanden nog nodig om je winkel te laten draaien. Je bestellingen, klanten en producten staan in heel andere tabellen.

Wat kun je veilig opruimen?

Een goede vuistregel: bewaar statistieken en logs zo lang als je ze echt gebruikt, bijvoorbeeld 90 dagen, en ruim de rest op. Let wel op twee dingen:

  1. Verwijder alleen anonieme gasten, nooit gasten die aan een klantaccount gekoppeld zijn.
  2. Bewaar gasten met een recent winkelmandje, anders raakt een bezoeker die net iets in zijn mandje legde dat kwijt.

Ook verlopen kortingsregels en de cache van de gefacetteerde zoekfunctie kun je opruimen. Die cache bouwt PrestaShop vanzelf opnieuw op.

Zo pak je het veilig aan

1. Maak eerst een back-up

Ruim nooit op zonder back-up. Gaat er iets mis, dan zet je de tabellen gewoon terug.

2. Bekijk vooraf wat er verdwijnt

Controleer per tabel hoeveel regels er weggaan. Zie je ineens een onverwacht groot getal, kijk dan eerst je instellingen na.

3. Verwijder in kleine stukken

Een DELETE op miljoenen regels in één keer kan je shop minutenlang vastzetten. Verwijder liever in porties van een paar duizend regels.

4. Bouw daarna de zoekindex opnieuw op

Een frisse zoekindex zorgt dat de zoekfunctie in je winkel weer klopt met je actuele catalogus.

5. Geef de ruimte terug aan de schijf

MySQL en MariaDB geven de ruimte van verwijderde regels niet vanzelf terug. Wil je dat de databasebestanden echt kleiner worden, voer dan na het opruimen OPTIMIZE TABLE uit op de grootste tabellen, bijvoorbeeld via phpMyAdmin.

Handmatig of met een module?

Met SQL-query's in phpMyAdmin kan het allemaal, maar één verkeerde WHERE en je bent gegevens kwijt. Bovendien moet je het elke paar maanden opnieuw doen.

Daarom hebben we Cloverfield Database Clean-up gemaakt. De module maakt met één klik een back-up, laat vooraf zien hoeveel regels er per tabel verdwijnen, ruimt op in porties van 2000 regels en bouwt de zoekindex opnieuw op. Back-ups zet je vanuit dezelfde module terug, en ook multistore wordt ondersteund.

Kort samengevat

  1. Logs en statistieken laten je database ongemerkt groeien.
  2. Bewaar alleen wat je echt gebruikt, bijvoorbeeld de laatste 90 dagen.
  3. Altijd eerst een back-up, dan opruimen in kleine stukken.
  4. Herhaal het een paar keer per jaar, dan blijft je shop snel.