Blog

optymalizacja-prestashop-bazy-danych

Optymalizacja PrestaShop: Jak zoptymalizować bazę danych?

Optymalizacja PrestaShop pod kątem bazy danych jest kluczowa, aby zapewnić jej wydajność. Jest to szczególnie ważne w przypadku sklepów internetowych z dużym ruchem i szerokim asortymentem. PrestaShop domyślnie gromadzi różnego rodzaju statystyki, które mogą obciążać bazy danych. Poniżej zabraliśmy kilka kroków i zaleceń dotyczących optymalizacji tych aspektów.

Optymalizacja bazy danych w PrestaShop – podstawowe kroki

  1. Regularne czyszczenie tabel statystycznych:
    • Tabela ps_connections: Przechowuje dane o sesjach użytkowników. Regularne usuwanie starych rekordów może znacząco zredukować rozmiar bazy.
    • Tabela ps_connections_source: Zawiera informacje o źródłach wejścia użytkowników. Czyszczenie jej również jest wskazane.
    • Tabela ps_guest: Zawiera dane o gościach sklepu, które mogą być usunięte po pewnym czasie.
    • Tabela ps_page_viewed: Przechowuje informacje o oglądanych stronach, które mogą zostać stare i niepotrzebne.
  2. Wykorzystanie indeksów:
    • Upewnij się, że tabele odpowiedzialne za krytyczne operacje mają odpowiednie indeksy. Możesz użyć narzędzi do analizy bazy danych, aby zidentyfikować brakujące lub nieużywane indeksy.
  3. Optymalizacja zapytań:
    • Sprawdź skrypty SQL generowane przez PrestaShop pod kątem efektywności. Korzystanie z narzędzi do profilowania bazy danych może pomóc w identyfikacji oraz optymalizacji ciężkich zapytań.

Wyłączenie zbierania statystyk

  1. Zarządzanie modułami statystyk:
    • W panelu administracyjnym PrestaShop przejdź do zakładki Moduły i wyłącz funkcję zbierania statystyk, jeśli Twoje potrzeby analityczne są zaspokajane przez zewnętrzne narzędzia jak Google Analytics.
  2. Wyłączenie niepotrzebnych modułów:
    • Rozważ wyłączenie modułów, które nie są niezbędne, a obciążają serwer poprzez generowanie dodatkowych danych.
  3. Bezpośrednie modyfikacje w kodzie:
    • Jeśli wyłącznie modułów nie jest wystarczające, można również wprowadzić zmiany w kodzie źródłowym, aby wyłączyć określone funkcje śledzenia. Wymaga to jednak pewnej znajomości programowania PHP.
  4. Tworzenie strategii archiwizacji:
    • Przenieś stare dane statystyczne do archiwum, aby zmniejszyć obciążenie bazy danych. Można to zrobić poprzez eksportowanie danych i usunięcie ich z aktualnej bazy danych.
hosting-dedykowany-poradzi-sobie-z-najwiekszym-ruchem

Co jeśli zbieranie statystyk w prestashop jest mi potrzebne?

Jeżeli wyłączenie statystyk nie jest możliwe sugerujemy zastosowanie strategii polegającej na usuwaniu danych starszych niż określony okres. Aby odchudzić tabele z danych starszych niż n dni, można użyć poniższych zapytań SQL. W tych przykładach zakładamy, że chcemy usunąć dane starsze niż 30 dni. Należy dostosować liczbę dni do własnych potrzeb, zastępując 30 odpowiednią liczbą.

1. Tabela ps_connections

DELETE FROM ps_connections
WHERE DATE_ADD(date_add, INTERVAL 30 DAY) < NOW();

2. Tabela ps_connections_source

DELETE FROM ps_connections_source
WHERE id_connections NOT IN (
    SELECT id_connections FROM ps_connections
);

3. Tabela ps_guest

Usunięcie rekordów ps_guest bez aktywności w ciągu ostatnich 30 dni

DELETE FROM ps_guest 
WHERE id_guest NOT IN (
    SELECT DISTINCT id_guest FROM ps_connections 
    WHERE date_add >= NOW() - INTERVAL 30 DAY
);

4. Tabela ps_page_viewed

DELETE FROM ps_page_viewed
WHERE DATE_ADD(date_add, INTERVAL 30 DAY) < NOW();

Uwagi:

  1. Tworzenie kopii zapasowej: Przed wykonaniem tych zapytań, warto zrobić kopię zapasową bazy danych, aby zapobiec utracie danych w razie pomyłki.
  2. Optymalizacja po usunięciu: Po usunięciu dużej ilości danych, opłacalne może być wykonanie optymalizacji tabel, aby odzyskać przestrzeń dyskową i zreorganizować indeksy: sqlCopy
OPTIMIZE TABLE ps_connections;
OPTIMIZE TABLE ps_connections_source;
OPTIMIZE TABLE ps_guest;
OPTIMIZE TABLE ps_page_viewed;

Testowanie na środowisku testowym: Zawsze testuj zapytania na środowisku testowym przed uruchomieniem ich w produkcji, aby upewnić się, że działają zgodnie z oczekiwaniami.

Regularne czyszczenie: Możesz automatyzować te operacje, np. za pomocą crona, aby regularnie usuwać stare dane i utrzymywać bazę danych w dobrym stanie.

Regularna konserwacja

  • Backup bazy danych: Przed jakimikolwiek operacjami optymalizacyjnymi upewnij się, że posiadasz aktualne kopie zapasowe bazy danych.
  • Przegląd logów: Regularnie monitoruj logi serwera w celu wykrycia problemów z wydajnością bazy danych.

Wdrożenie powyższych strategii pomoże Ci nie tylko w zwiększeniu wydajności sklepu, ale także w redukcji kosztów utrzymania zasobów serwerowych. Optymalizacja bazy danych jest procesem ciągłym i powinna być dostosowywana do zmieniających się potrzeb biznesowych oraz technicznych.

Optymalizacja bazy danych to tylko jeden z elementów wpływających na wydajność sklepu internetowego. Równie istotnym czynnikiem jest odpowiedni hosting. Nawet najlepiej zoptymalizowana baza danych nie przyniesie oczekiwanych rezultatów, jeśli serwer, na którym działa sklep, nie zapewnia odpowiednich zasobów.

Hosting dedykowany to idealne rozwiązanie dla sklepów o dużym ruchu i szerokim asortymencie. Gwarantuje on niezawodność, lepszą kontrolę nad zasobami oraz znacznie wyższą wydajność w porównaniu do rozwiązań współdzielonych. Dzięki temu Twój sklep będzie działał szybciej, a optymalizacja PrestaShop stanie się jeszcze łatwiejsza. Wybierz hosting dedykowany w STATNET Online i zapewnij swojemu sklepowi bezproblemowe działanie. Jesteśmy dla Ciebie zawsze na TAK!