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:
- Odwiedziny i połączenia gości - rekord na każde wejście do sklepu, przez cały czas działania.
- Porzucone koszyki wraz z ich zawartością - każdy niedokończony zakup, także sprzed trzech lat.
- Log zdarzeń w panelu - wpis przy każdej zmianie ustawienia i każdym logowaniu.
- Historia wyszukiwań w sklepie i indeks wyszukiwarki.
- 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
- Kopia bazy przed jakąkolwiek operacją. Bez wyjątków - to jedyny moment, w którym można cofnąć błąd.
- 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.
- Pora najniższego ruchu. Operacja obciąża bazę tak samo jak każda inna.
- 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.