Logo GRVision - Strony i sklepy internetowe
Darmowa konsultacja 881 932 088 kontakt@grvision.pl

Baza sklepu urosła - co można z niej wyrzucić

Publikacja: · Grzegorz Rapczyński

Sklep, który działa trzy lata, ma bazę kilka razy większą niż w dniu startu - i w dużej mierze nie z powodu produktów czy zamówień. Rosną tabele, o których nikt nie pamięta, bo nikt nigdy do nich nie zagląda. Poniżej konkretnie o bazie sklepu na PrestaShop: które tabele puchną najszybciej, co da się z nich usunąć bez konsekwencji i czego lepiej nie ruszać.

Efekt widać w dwóch miejscach: panel administracyjny zaczyna się wlec, a kopie zapasowe robią się tak duże, że przestają się udawać.

Najpierw zobacz, co faktycznie zajmuje miejsce

Nie zgaduj - w narzędziu do zarządzania bazą (najczęściej dostępnym z panelu hostingu) można posortować tabele według rozmiaru. Zajmuje to chwilę i zwykle bywa zaskoczeniem.

Typowa lista największych tabel w sklepie po kilku latach:

  1. Odwiedziny i połączenia gości - rekord na każde wejście do sklepu, przez cały czas działania.
  2. Porzucone koszyki wraz z ich zawartością - każdy niedokończony zakup, także sprzed trzech lat.
  3. Log zdarzeń w panelu - wpis przy każdej zmianie ustawienia i każdym logowaniu.
  4. Historia wyszukiwań w sklepie i indeks wyszukiwarki.
  5. Statystyki modułów, także tych dawno odinstalowanych.

Co można skasować bez ryzyka

Dane o odwiedzinach starsze niż rok. Nikt z nich nie korzysta, bo statystyki i tak czyta się w zewnętrznej analityce. To zwykle największa pojedyncza oszczędność.

Porzucone koszyki bez zamówienia, starsze niż kilka miesięcy. Uwaga na szczegół: kasuje się koszyki, do których nie przypisano zamówienia. Koszyk powiązany z zamówieniem jest jego częścią i musi zostać.

Log zdarzeń starszy niż kilka miesięcy. Warto zachować ostatnie pół roku, resztę można wyczyścić.

Wpisy po odinstalowanych modułach. Sklep często nie sprząta po sobie przy usuwaniu modułu - zostają ustawienia i podpięcia do miejsc w szablonie.

Stare kopie zapasowe leżące w katalogu sklepu. To akurat nie baza, ale przy okazji warto sprawdzić - archiwa sprzed lat potrafią zajmować gigabajty i są kopiowane przy każdej nowej kopii.

Czego nie wolno ruszać

  • Zamówień - żadnych, nawet anulowanych i nawet sprzed pięciu lat. To dokumentacja sprzedaży, także wobec urzędu skarbowego.
  • Klientów i ich adresów powiązanych z zamówieniami.
  • Dokumentów - faktur, korekt, potwierdzeń dostawy.
  • Tabel produktów - nawet dla produktów wyłączonych. Ich usunięcie kasuje historię zamówień powiązaną z tymi pozycjami.

Zasada jest prosta: usuwamy to, co sklep zapisał sam o ruchu i zachowaniach, zostawiamy to, co wpisał człowiek albo klient.

Jak to zrobić bezpiecznie

  1. Kopia bazy przed jakąkolwiek operacją. Bez wyjątków - to jedyny moment, w którym można cofnąć błąd.
  2. Kasuj partiami, nie wszystko jednym poleceniem. Usunięcie miliona rekordów naraz potrafi zablokować bazę na kilkanaście minut, a w tym czasie sklep nie działa.
  3. Pora najniższego ruchu. Operacja obciąża bazę tak samo jak każda inna.
  4. Optymalizacja tabel po czyszczeniu. Skasowanie rekordów nie zmniejsza automatycznie pliku na dysku - dopiero optymalizacja odzyskuje miejsce.

Jeśli nie czujesz się pewnie w narzędziach do baz danych, to jest dokładnie ten moment, żeby tego nie robić samemu. Błąd w warunku usuwania potrafi skasować zamówienia zamiast koszyków, a różnica w zapisie bywa jednym słowem.

Co zrobić, żeby nie wracać do tego co roku

  • Wyłącz moduły statystyk, z których nie korzystasz. Nie będą miały czego zapisywać. To jednocześnie jedna z głównych przyczyn tego, że panel administracyjny działa wolno.
  • Ustaw automatyczne czyszczenie starych koszyków i danych o odwiedzinach, jeśli sklep albo moduł to oferuje.
  • Sprawdzaj rozmiar bazy raz na kwartał. Pięć minut, a pozwala wyłapać tabelę, która rośnie szybciej niż reszta - zwykle oznacza to moduł zapisujący coś w pętli.

Jedno źródło puchnięcia bazy jest strukturalne, a nie techniczne: produkty z dużą liczbą wariantów. Kilka atrybutów po kilka wartości daje setki kombinacji na produkt - dlatego warto raz przemyśleć, co powinno być kombinacją, a co osobnym produktem.

Najczęstsze pytania

O ile realnie przyspieszy sklep po wyczyszczeniu bazy?

Sklep dla klientów zwykle niewiele - on korzysta z cache. Panel administracyjny potrafi przyspieszyć wyraźnie, bo listy zamówień i klientów przestają przeszukiwać rozdęte tabele.

Czy mogę usunąć dane klientów, którzy nic nie kupili?

Technicznie tak, a przy koncie założonym lata temu i nigdy nieużywanym bywa to nawet wskazane. Trzeba tylko pamiętać, że zapisy o zgodach marketingowych też są danymi i ich usunięcie jest ostateczne.

Baza ma kilka gigabajtów. To dużo?

Zależy od sklepu. Przy kilkudziesięciu tysiącach produktów to normalne. Przy dwustu produktach to znak, że coś zapisuje dane bez umiaru i warto znaleźć co.

Baza urosła i nie wiadomo, co z tym zrobić

Przejrzenie tabel i wyczyszczenie tego, co zbędne, to zwykle kilka godzin pracy i wyraźna różnica w pracy panelu. Napisz - formularz kontaktowy, 881 932 088 lub kontakt@grvision.pl.