blog
user
13 052021

Sklep internetowy prestashop jak każda inna aplikacja wymaga okresowej konserwacji. Głównym celem jest przyspieszenie działania strony zarówno po stronie frontendu jak i backendu. Jedną z form optymalizacji sklepu interntowego jest optymazliacja bazy danych. Prestashop przechowuje w niej wiele informacji, które nie muszą być przechowywane w nieskończoność. Panel dostarczony przez system posiada co prawda narzędzia optymalizacyjne ale nie porządkują one bazy danych. 

Po zalogowaniu do phpmyadmin można przejrzeć tabele według rozmiaru plików. Tabele z największymi rozmiarami to ps_connections, ps_guest, ps_connection_source, ps_page_viewed. Wszystkie te tabele przechowują dane statystyczne. Jak widać na przykładzie poniżej pierwsze dwie tabele zajmują prawie 400MB. Z kolei cała baza danych w konkretnym przypadku zajmuje 600MB.



Baza danych prestashop zawiera jeszcze inne tabele, które mogą zostać wyczyszczone chociaż zawierają mniej rekordów i są mniejszego rozmiaru.

ps_log - tabela przechowująca informacje o działaniach przeprowadzanych w panelu

ps_pagenotfound - tabela przechowująca informacje o błędach 404

ps_statssearch - tabela przechowująca archiwalne wyszukiwania

ps_referrer_cache - tabela przechowująca informacje o urlach odsyłających

ps_mail - logi wysyłanych e-maili


Poniższy skrypt czyści tabele ale nie ze wszystkich rekordów. Wystarczy dla zmiennej @maxdate ustawić maksymalną datę dla których tabela ma zostać wyczyszcona z rekordów.


TRUNCATE ps_log; 
TRUNCATE ps_referrer_cache;

SET @maxdate = '2020-01-01 00:00:00';

DELETE c, cs
FROM ps_connections c
LEFT JOIN ps_connections_source cs ON (c.id_connections = cs.id_connections)
WHERE c.date_add < @maxdate;

OPTIMIZE TABLE ps_connections, ps_connections_source;

DELETE g
FROM ps_guest g
LEFT JOIN ps_customer c ON (g.id_customer = c.id_customer)
WHERE c.id_customer IS NULL;

OPTIMIZE TABLE ps_guest;

DELETE FROM `ps_pagenotfound` WHERE `date_add` < @maxdate ;

DELETE FROM `ps_statssearch` WHERE `date_add` < @maxdate ; 
DELETE FROM `ps_mail` WHERE `date_add` < @maxdate;


Optymalizacja bazy danych sklepu prestashop z pewnością przyczyni się do przyspieszenia działania sklepu internetowego. Warto więc okresowo przyjrzeć się wielkości bazy danych.



Nasze newsy

Śledź nasze aktualności.

blog
user
13 072023

Iteracja dużej ilości danych w Laravel Eloquent

Jak poprawnie iterować dużą ilość danych w Laravel Eloquent

blog
user
29 032023

Wtyczka do Octobercms blokująca ip

Nowa wtyczka do Octobercms zwiększająca bezpieczeństwo stron www.

blog
user
28 012023

Adaptacja fullcalendar w Octobercms

Przykład adaptacji fullcalendar w panelu Octobercms.

logo

Masz pytania? Skontaktuj się