Jak wyczyścić bazę danych WordPress

·

·


Prawie wszystkie witryny WordPress®, które widziałem, mają rozdęte bazy danych. To jest całkiem normalne. Nikt nie urodził się jako ekspert w budowaniu super wydajnych i zoptymalizowanych stron.

Kiedy zacząłem używać WordPress®, zmieniałem motywy co miesiąc i testowałem wiele wtyczek. Czytałem artykuły „21 najważniejszych wtyczek, które musisz mieć” i zainstalowałem je wszystkie. Kilka tygodni później je odinstalowałem.

Uczysz się w ten sposób: próbujesz, testujesz i odkrywasz, czego potrzebujesz i co Ci odpowiada.

Jednak wiele lat później zostaje Ci baza danych WordPress® pełna starych, bezużytecznych rzeczy. Dzieje się tak dlatego, że baza danych Twojej witryny nie zawiera tylko treści, ale wszystkie motywy i ustawienia wtyczek.

Dlaczego posiadanie czystej bazy danych jest istotne?

U jednego z klientów, bloga kulinarnego z ~10 000 odwiedzin dziennie, ładowanie trwało 13–15 sekund. Rozwiązaniem zaproponowanym przez firmę hostingową była zmiana planu hostingowego na droższy.

Nasze rozwiązanie było inne – przeprowadziliśmy audyt strony po migracji na naszą platformę hostingową.

Audyt witryny jest bezpłatny, jeśli płacisz co roku za dowolny plan hostingowy od Simplenet ; Ty też możesz na tym zyskać.

Odkryliśmy ponad 25 000 wpisów do bazy danych w tabeli WP_OPTIONS z AutoLoad ustawionym na tak. „AutoLoad: tak” oznacza, że ​​gdy WordPress® inicjuje, odczytuje te opcje z bazy danych, która zajmuje około 11 sekund.

Usunęliśmy te stare, bezużyteczne opcje i teraz WordPress® ładuje się w 2-3 sekundy. Zoptymalizowaliśmy także obrazy, zastąpiliśmy niektóre złe wtyczki lepszymi i wprowadziliśmy inne drobne poprawki.

Nie potrzebowała droższego planu; pozostawała na tym samym planie przez kolejne 8–9 miesięcy, aż ruch osiągnął ~60 000 odwiedzin dziennie i wtedy nadszedł czas na aktualizację.

Zaletą posiadania czystej bazy danych WordPress® było to, że pomogła jej zaoszczędzić pieniądze na hostingu, mieć szybszą stronę internetową i bez wysiłku skalować się do znacznie większego ruchu. 

Zobaczmy więc, co możesz zrobić, aby zoptymalizować bazę danych WordPress®, aby uzyskać te same korzyści.

Zawsze najpierw wykonaj kopię zapasową

Przed przystąpieniem do czyszczenia bazy danych należy utworzyć pełną kopię zapasową witryny, obejmującą bazę danych i pliki — lub przynajmniej bazę danych — ponieważ to właśnie tam będziemy wprowadzać zmiany. To zabezpieczenie pozwala szybko przywrócić witrynę do poprzedniego stanu, jeśli coś pójdzie nie tak, oszczędzając czas, stres i potencjalne straty.

Bez kopii zapasowej nie można odzyskać przypadkowo usuniętych postów, stron, kont użytkowników ani ustawień. Błędy podczas czyszczenia bazy danych — takie jak usuwanie ważnych tabel lub uszkodzenie danych — mogą również uszkodzić Twoją witrynę internetową, czyniąc ją niedostępną dla odwiedzających.

Możesz wyeksportować swoją bazę danych z phpMyAdmin. Twój dostawca usług hostingowych powinien zapewnić dostęp do tego narzędzia do zarządzania bazami danych (lub podobnego).

Oferujemy dostęp do phpMyAdmin, a także wbudowane narzędzie do tworzenia kopii zapasowych, którego możesz używać do ręcznego tworzenia kopii zapasowych, kiedy tylko chcesz. Oferujemy również miejsca postojowe. Oznacza to, że możesz sklonować działającą witrynę internetową do witryny tymczasowej i wprowadzić w niej wszelkie zmiany, zanim zrobisz to w działającej witrynie internetowej.

Możesz także użyć wtyczki do tworzenia kopii zapasowych WordPress®, takiej jak:

Korzystając z wtyczki do tworzenia kopii zapasowych, upewnij się, że archiwum kopii zapasowych można wykorzystać poza WordPress®. Jeśli witryna ulegnie awarii, musisz mieć możliwość przywrócenia jej bez dostępu wp-admin.

Podstawowe czyszczenie WordPress®

Najłatwiejszym sposobem oczyszczenia bazy danych WordPress®, szczególnie dla osób nietechnicznych, jest użycie wtyczki WordPress®.

Najpopularniejsze wtyczki optymalizujące bazy danych to:

Istnieją również wtyczki do buforowania i optymalizacji, które mają również zintegrowane opcje czyszczenia bazy danych, takie jak:

Zalecamy WP-Sweep , ponieważ używa w miarę możliwości odpowiednich funkcji usuwania WordPress® zamiast uruchamiać bezpośrednie zapytania MySQL usuwające.

Zainstaluj i aktywuj wtyczkę WP Sweep, a następnie przejdź do Narzędzia > Sweep. Zobaczysz różne sekcje z przyciskiem Sweep obok nich. Kliknij przycisk, aby wyczyścić bałagan.

Ta wtyczka pomoże Ci usunąć:

  • Wersje
  • Automatyczne wersje robocze
  • Usunięte, niezatwierdzone i zawierające spam komentarze
  • Osierocona i zduplikowana meta postów
  • Osierocona i zduplikowana meta komentarzy
  • Osierocona i zduplikowana meta użytkownika
  • Relacje sieroce
  • Nieużywane terminy
  • Opcje przejściowe

Wtyczka może także optymalizować tabele, a jest to prostsze niż robienie tego poprzez phpMyAdmin.

Kolejną wtyczką, którą polecamy, jest LiteSpeed ​​Cache . Może wyczyścić bazę danych WordPress® i przekonwertować tabele bazy danych z MyISAM do InnoDB.

Możesz także zobaczyć listę wpisów automatycznego ładowania, ich liczbę i rozmiar, korzystając z pamięci podręcznej LiteSpeed.

Jako bonus polecam wtyczkę Scalability Pro dla WooCommerce; rozwiązuje niektóre problemy z wydajnością natywną.

Zaawansowane czyszczenie WordPress®

Po wyczyszczeniu metodą Easy powinieneś również sprawdzić ręcznie, dokładniej, jeśli nadal istnieją rzeczy, które można zoptymalizować w bazie danych.

Można przeprowadzić wiele optymalizacji bazy danych WordPress®, ale istnieje kilka istotnych problemów, które po rozwiązaniu naszej bazy danych powinny działać wystarczająco dobrze. Skupmy się więc na rozwiązaniu tych problemów z największą korzyścią.

Są to:

  • czyszczenie kluczy meta z pliku wp_postmeta
  • czyszczenie wpisów automatycznego ładowania z tabeli wp_options
  • przywracanie utraconego klucza podstawowego z tabeli wp_options

Czyszczenie kluczy meta z tabeli wp_postmeta

Nawet po wyczyszczeniu bazy danych za pomocą wtyczki takiej jak WP Sweep, w tabeli wp_postmeta mogą nadal znajdować się niepotrzebne wpisy, ponieważ nie wszystko zostało wyczyszczone.

Uzyskaj dostęp do bazy danych za pomocą phpMyAdmin lub dowolnego narzędzia do zarządzania bazą danych, przejdź do tabeli wp_postmeta i zobacz, jakie są wpisy.

Weźmy ten przykład.

Widać, że istnieje wiele wpisów z prefiksem EG_. Możesz zapytać Chatgpt : Jaka wtyczka WordPress umieściła wpisy z prefiksem EG_ w mojej tabeli WP_POSTMETA?

ChatGTP mówi mi, że jest to wtyczka Essential Grid. Jeśli nie używasz już tej wtyczki, możesz usunąć wszystkie te wpisy ręcznie lub uruchamiając zapytanie, aby usunąć je zbiorczo.

USUŃ Z wp_postmeta GDZIE meta_key LIKE „eg_%”;


To zapytanie usuwa wszystkie metaklucze zaczynające się od np._. Nie zapomnij wykonać kopii zapasowej bazy danych lub przynajmniej tabeli wp_postmeta przed rozpoczęciem wykonywania zapytań w celu oczyszczenia tabeli.

Powtórz ten proces z innymi metakluczami, których jest dużo i nie wiesz, czym są i do czego służą.

Czyszczenie wpisów automatycznego ładowania z tabeli wp_options

To jest problem, który omawialiśmy we wstępie tego artykułu: tabela wp_options została zapełniona wpisami z wartością Autoload ustawioną na Tak.

Wpisy te są odczytywane przy każdej inicjalizacji WordPressa.

Najłatwiej zobaczyć te wpisy, korzystając z wtyczki LiteSpeed ​​Cache i przechodząc do sekcji Baza danych. Przewiń do Podsumowanie bazy danych i zobacz listę wpisów automatycznego ładowania, ich liczbę i rozmiar.

Automatyczne ładowanie wpisów widocznych we wtyczce LiteSpeed ​​Cache

W powyższym przykładzie nie ma problemów; To czysta baza danych, ale jeśli zobaczysz na swojej stronie ogromne wpisy, możesz zapytać GPT : Jaka wtyczka umieściła pozycję X w tabeli WP_OPTIONS mojej bazy danych WordPress?


W ten sposób możesz zidentyfikować wtyczkę, która dodała te dane, a jeśli już jej nie używasz, możesz usunąć odpowiedni wpis.

USUŃ Z wp_options GDZIE nazwa_opcji LIKE 'nazwa-twojej-opcji';

Powyższe zapytanie SQL usuwa wpis, po prostu zamień nazwę-opcji na rzeczywistą nazwę wpisu.

Nie zapomnij wykonać kopii zapasowej bazy danych lub przynajmniej tabeli wp_options przed rozpoczęciem czyszczenia.

Przywracanie utraconego klucza podstawowego z tabeli wp_options

Inny problem, który napotkałem, jest związany z tabelą wp_options, a mianowicie istnieją przypadki, w których tabela ta traci swój klucz podstawowy.

Pole Option_id jest domyślnie skonfigurowane jako klucz podstawowy.

Klucz podstawowy gwarantuje niepowtarzalność każdego wiersza w tabeli i umożliwia indeksowanie wierszy w celu szybkiego dostępu. Jeśli mamy zduplikowane wartości i zgubimy klucz podstawowy, operacje na tej tabeli będą wolniejsze, ponieważ nie będzie już możliwości szybkiego dostępu do konkretnego wiersza. Wykonywane jest pełne skanowanie tabeli — co oznacza, że ​​każdy wiersz tabeli jest odczytywany w celu znalezienia niezbędnych danych, co zajmuje więcej czasu.

W niektórych sytuacjach, takich jak ręczna migracja za pomocą mysqldump z jednego serwera na drugi, tabela może utracić swój klucz podstawowy, gdy wersje MySQL różnią się na poszczególnych serwerach.

identyfikator_opcjinazwa_opcji
1opcja 1
2opcja 2
3opcja 3
0opcja 4
0opcja 5
0opcja 6

Aby rozwiązać tę sytuację, musimy ponownie ustawić kolumnę Option_id jako klucz podstawowy. Nie możemy tego jednak zrobić, jeśli istnieją zduplikowane wartości, te z wartością 0, więc należy je usunąć lub zmienić numerację.

Usuwanie ich resetuje konfiguracje motywu lub wtyczki, ale możemy je zniszczyć. Uruchom te zapytania w tabeli WP_Options.

Set @new_option_id: = 4; Aktualizacja WP_OPTIONS Ustaw opcję_id = (@new_option_id: = @new_option_id + 1) gdzie opcja_id in (wybierz option_id z (wybierz option_id z wp_options, gdzie opcja_id = 0 grupa według opcji_id mając liczbę (*)> 1) jako duplikates); Usuń z wp_options, gdzie option_id = 0; Alter Tabela wp_options Dodaj klucz podstawowy (option_id);

Zapytania widoczne na ekranie mają następujące działanie:

  • Ustawia punkt początkowy dla identyfikatora opcji. Na przykład numeracja w powyższym przykładzie zatrzymała się na 3, więc jako nowy punkt początkowy ustawiliśmy 4.
  • Identyfikuje duplikaty opcji_id o wartości 0 i aktualizuje je o nowe wartości, zaczynając od ustawionej wartości
  • Usuwa wszystkie pozostałe wiersze, w których identyfikator opcji wynosi 0
  • Dodaje klucz podstawowy do opcji id

Upewnij się, że zmień domyślny prefiks (WP_) na jedną, której używa Twoja baza danych, i ustaw według przykładu (kod używa 4 jako przykład).

Następnie uruchom następujące zapytania.

Zmień tabelę wp_options auto_increment = 7; Alter Tabela WP_Options Modyfikuj Option_ID Bigint (20) Unsigned Not Null Auto_Increment; Sprawdź tabelę wp_options; Tabela naprawy WP_Options;

Pytania wykonują następujące czynności:

  • Ustawia nową wartość początkową dla AUTO_INCREMENT na ostatnią liczbę – w naszym przykładzie zatrzymali się na 6, więc jako nowy punkt początkowy ustawiliśmy 7
  • Włączamy auto_inkrementację dla kolumny Option_id
  • Robimy tabelę kontrolną
  • I stół naprawczy

Ponownie upewnij się, że zmień domyślny prefiks (WP_) na tę, której używa Twoja baza danych. I ustaw według numeru (kod używa 7 jako przykład).

Przed rozpoczęciem tej operacji nie zapomnij kopii zapasowej bazy danych lub tabeli WP_OPTIONS.

Możesz uruchomić te zapytania w phpMyAdmin (narzędzie dostępnym z panelu sterowania hostingu) lub za pomocą narzędzia do zarządzania bazami danych, takiego jak Sequel Ace (Mac) lub MySQL Workbench (Windows, Linux, Mac).

Używam Sequel Ace i wolę go od phpMyAdmin, ponieważ jest szybszy i stabilniejszy. PhpMyAdmin może czasami ulec awarii z powodu ograniczeń PHP, szczególnie w przypadku hostingu współdzielonego.

Najlepsze praktyki pozwalające zachować czystość bazy danych WordPress®

Większość wtyczek i motywów nie sprząta sama po sobie, dlatego warto od czasu do czasu przeprowadzić czyszczenie, aby mieć pewność, że wszystko jest w doskonałym stanie.

Wtyczki optymalizacyjne mają tę funkcję planowania automatycznego czyszczenia i zmniejszania rozdęcia bazy danych:

  • Latająca prasa
  • Rakieta WP
  • Perfmaty
Perfmatters Zaplanowana optymalizacja

Możesz ustawić harmonogram tygodniowy, miesięczny lub dowolny.

Zalecam również usunięcie nieużywanych wtyczek i motywów. Pomaga to również z punktu widzenia bezpieczeństwa. Radzę nie przechowywać skryptów PHP (wtyczek, motywów, innych plików PHP) na swoim serwerze innych niż te, z których aktywnie korzystasz.

Aby usunąć nieużywane wtyczki, zaloguj się do wp-admin i przejdź do Wtyczki > Zainstalowane wtyczki. Kliknij opcję Nieaktywne, aby wyświetlić nieaktywne wtyczki i je usunąć.

Aby usunąć nieużywane motywy, przejdź do Wygląd > Motywy. Kliknij każdy motyw, który chcesz usunąć, a następnie kliknij Usuń w prawym dolnym rogu.

Zalecam zachowanie tylko aktywnego motywu i jednego motywu domyślnego (jeśli chcesz przetestować niezgodności).

Możesz także zapobiec kumulowaniu się wersji, ograniczając liczbę wersji przechowywanych w bazie danych, na przykład 30. Dodaj następujący kod do pliku wp-config.php.

zdefiniuj('WP_POST_REVISIONS', 30 );

Nie pozostawiaj komentarzy bez zatwierdzenia – zatwierdź je, spamuj lub wyrzuć.

Uważaj na wtyczki przechowujące dużo danych:

  • wtyczki statystyczne
  • wtyczki zabezpieczające
  • wtyczki antyspamowe
  • powiązane wtyczki postów
  • wtyczki śledzące linki

Nie mówię, że nie powinieneś używać żadnej z powyższych wtyczek, ale używaj wtyczek, które oferują te funkcje i zapisują dane na zewnątrz, a nie w bazie danych WordPress®.

Jeśli to możliwe, unikaj używania wtyczek, które powodują wzdęcia. Staraj się, aby baza danych WordPress® była jak najlżejsza. Lepiej zapobiegać niż leczyć wzdęcia.

Skuteczna optymalizacja baz danych zapewnia szybkie, niezawodne i skalowalne strony internetowe. Wdrożenie najlepszych praktyk może znacznie poprawić wydajność bazy danych przy jednoczesnym obniżeniu kosztów operacyjnych. Pamiętaj, że optymalizacja bazy danych nie jest zadaniem jednorazowym, ale ciągłym procesem, który ewoluuje wraz z potrzebami i rozwojem systemu.

Dziękujemy za przeczytanie tego artykułu na temat optymalizacji baz danych. Mam nadzieję, że dostarczył on cennych spostrzeżeń i praktycznych wskazówek, które pozwolą zwiększyć wydajność baz danych WordPress®.

Jeśli masz jakieś pytania, uwagi lub dodatkowe techniki, którymi chcesz się podzielić, nie wahaj się zostawić komentarza lub skontaktować się z nami. Razem możemy budować lepsze, szybsze i wydajniejsze strony internetowe!

Awatar Andrieja Chiry

Uwagi

11 odpowiedzi

  1. Niesamowite źródło informacji na temat czyszczenia bazy danych WP. Dziękuję, że się tym podzieliłeś.

    1. Dziękuję. Jeśli potrzebujesz innych informacji lub tutoriali, które moglibyśmy napisać, daj nam znać.

  2. Awatar Hong Ng

    Czy próbowałeś TablePlus? Jest podobny do Sequel Pro, ale obsługuje wiele sterowników.

    1. Nigdy o tym nie słyszałem, aż do teraz.

  3. Używam Akismetu. Czy to też powinienem usunąć? Kilka razy próbowałem darmowej wersji UPDRATPLUS, ale zawsze kończyła mi się pamięć i strona nie działała. Zwiększono pamięć w php.ini i próbowałem, ale bez powodzenia. Mam GoDaddy współdzielony hosting Linux.

    1. Ja wolę Antispam Bee , uważam, że jest skuteczniejszy w walce ze spamem niż Akismet.
      Większość wtyczek do tworzenia kopii zapasowych ma problemy z hostingiem współdzielonym. Rozwiązaniem, które może działać lepiej, jest użycie ManageWP lub WP Time Capsule .
      Rozwiązania te tworzą przyrostowe kopie zapasowe, więc nie ma potrzeby kompresowania i zipowania, a to zużywa mniej zasobów serwera.

  4. Dzięki wiedzy uzyskanej z Twojego artykułu oczyszczenie bazy danych okazało się całkiem proste i bez żadnych błędów i problemów.

  5. To naprawdę świetny artykuł, dziękuję za udostępnienie i chciałbym powiedzieć, że prosimy o dalsze udostępnianie nam swoich informacji.

  6. Dziękuję.
    Działa jak urok!

  7. Bardzo dobrze przekazane informacje, dziękuję za to.

  8. Bardzo dobry artykuł, który udostępniliśmy, dzięki za to.

Zostaw odpowiedź

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są zaznaczone *