Czyszczenie bazy danych PrestaShop

Logo Prestashop

Wpis ten omawia w jaki sposób można zoptymalizować bazę danych strony opartej o PrestaShop.

Skąd pomysł na ten wpis?

Prowadziłem sklep internetowy znajdujący się pod adresem https://skrypty.sattel.pl
Był oparty o Prestashop 1.7. I mimo, że w sklepie jest tylko kilka produktów to baza danych po pobraniu do pliku .sql miała ponad 42 MB!
Czyli dość dużo.

Dlaczego chciałem ją odchudzić?

W tym przypadku baza może nie jest tak duża, ale dla klientów ze sklepami ze znacznie większą ilością produktów i wejść baza danych może mieć naprawdę dużą wagę. Wtedy może być kłopotliwe wykonywanie kopii zapasowych bazy danych, a nawet może ona przekroczyć ograniczenia na hostingu.

W panelu admina miałem zainstalowany moduł „Oczyszczanie Prestashop”. Po uruchomieniu „funkcjonalne ograniczenia integralności” oraz „czyszczenie bazy danych” waga pliku .sql zmniejszyła się do… 41 MB. Tak, tylko 1 MB mniej.

Dlatego postanowiłem ręcznie wyczyścić bazę z danych których osobiście nie używam.

Uwaga! Przed zastosowaniem poniższych wskazówek koniecznie zrób kopię zapasową bazy danych!

Poniżej lista tabel:
ps_connections
ps_connections_page
ps_connections_source
ps_guest
ps_page_viewed
Odpowiadają za logi wejść użytkowników na stronę.

ps_log
Logi zmian w sklepie

ps_search_index
ps_search_word
Indeksy do wyszukiwarki, możemy je odbudować po wyczyszczeniu

ps_smarty_cache
Cache do systemów szablonu smarty

Zapytanie do bazy danych, które usunie te dane:

truncate ps_connections;
truncate ps_connections_page;
truncate ps_connections_source;
truncate ps_guest;
truncate ps_page_viewed;
truncate ps_log;
truncate ps_search_index;
truncate ps_search_word;
truncate ps_smarty_cache;

Zapytanie wykonujesz na własną odpowiedzialność.

Po usunięciu indeksu wyszukiwarki należy go przebudować. Możemy to wykonać w panelu admina w dziale Konfiguruj -> Preferencje -> Szukaj

W moim przypadku po wykonaniu tych czynności rozmiar bazy spadł do 2 MB!

Jeśli macie jakieś sugestie zachęcam do dodawania komentarzy!