Jak wyczyścić bazę danych WordPress

nauka-html-css

Prawie wszystkie witryny WordPress, które widziałem, miały rozdęte bazy danych. Myślę, że to całkiem normalne. Nikt nie urodził się ekspertem w tworzeniu superwydajnych i zoptymalizowanych witryn.

Kiedy zacząłem korzystać z WordPressa, co miesiąc zmieniałem motywy i testowałem wiele wtyczek. Czytałem artykuły „21 najpopularniejszych wtyczek, które trzeba mieć”, po prostu je zainstalowałem. Kilka tygodni później odinstaluj.

W ten sposób się uczysz. Próbujesz, testujesz, odkrywasz, czego potrzebujesz, co Ci odpowiada.

Ale wiele lat później pozostaje 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?

Mieliśmy jednego klienta, bloga kulinarnego z ~10 000 odsłon dziennie, którego ładowanie trwało 13–15 sekund. Rozwiązaniem zaproponowanym przez firmę hostingową było przejście na VPS ze wspólnego planu, z którego korzystała.

Nasze rozwiązanie było inne.

Odkryliśmy, że WordPress zużywał 300 MB do wygenerowania strony. Typowa instancja WordPressa powinna zużywać 30-40 MB, więc masz pojęcie, jak źle było. Nic dziwnego, że załadowanie zajęło 15 sekund i wyczerpało zasoby przydzielone jej kontu hostingowemu.

Odkryliśmy ponad 25 000 wpisów bazy danych w tabeli wp_options z opcją automatycznego ładowania ustawioną na tak. „Autoload: tak” oznacza, że ​​podczas inicjalizacji WordPress odczytuje te opcje z bazy danych. Samo to zajęło około 11 sekund.

Usunęliśmy te stare, bezużyteczne opcje i teraz WordPress zużywa 50 MB i ładuje się w 2-3 sekundy. Zoptymalizowaliśmy także obrazy, przełączyliśmy ją na Genesis Framework, zastąpiliśmy niektóre złe wtyczki lepszymi i wprowadziliśmy inne drobne poprawki.

Nie musiała przechodzić na VPS; pozostała na wspólnym planie przez kolejne 8-9 miesięcy, kiedy jej ruch osiągnął ~60 000 odsłon dziennie i nadszedł czas, aby odejść od hostingu współdzielonego .

ruch na blogu

Podsumowując, posiadanie czystej bazy danych WordPress pomogło jej zaoszczędzić pieniądze na hostingu. I może pomóc także Tobie. Zobaczmy więc, co możesz zrobić, aby zoptymalizować bazę danych WordPress.

Najpierw kopia zapasowa

Zanim zaczniesz cokolwiek robić, pamiętaj o utworzeniu kopii zapasowej bazy danych. Używam UpdraftPlus z Amazon S3, ale istnieje wiele wtyczek/rozwiązań do tworzenia kopii zapasowych dla WordPress, takich jak:

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

Podstawowe sprzątanie

Jedną z głównych rzeczy, które możesz zrobić, jest usunięcie nieużywanych wtyczek i motywów, usuwanie spamowych komentarzy, usuwanie komentarzy, postów i stron znajdujących się w koszu.

Usuń nieużywane wtyczki i motywy

Pomaga to również z punktu widzenia bezpieczeństwa. Radzę nie przechowywać na swoim serwerze skryptów PHP (wtyczek, motywów i innych plików PHP), których nie używasz.

Aby usunąć nieużywane wtyczki, zaloguj się do wp-admin i przejdź do Wtyczki > Zainstalowane wtyczki. Kliknij opcję Nieaktywne, aby zobaczyć 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). Używam Genesis Framework. Dlatego zachowuję Genesis (motyw nadrzędny), motyw podrzędny Genesis (motyw aktywny) i jeden domyślny motyw WordPress (do celów testowych).

Opróżnij komentarze ze spamem

Zaloguj się do wp-admin i przejdź do Komentarze. Kliknij Spam, aby zobaczyć komentarze zawierające spam i użyj przycisku Opróżnij spam, aby je usunąć.

Opróżnij kosz

Będąc nadal w sekcji Komentarze, kliknij Kosz, aby wyświetlić komentarze umieszczone w koszu, i użyj przycisku Opróżnij kosz, aby je usunąć.

Przejdź do opcji Posty > Wszystkie posty i kliknij Kosz, aby wyświetlić posty umieszczone w koszu. Aby je usunąć, użyj przycisku Opróżnij kosz.

Przejdź do Strony > Wszystkie strony, kliknij Kosz, aby wyświetlić strony umieszczone w koszu, i użyj przycisku Opróżnij kosz, aby je usunąć.

Jeśli masz w koszu jakieś niestandardowe typy postów, możesz je usunąć w ten sam sposób. Jeśli masz kategorie lub tagi, których nie używasz, możesz je również wyeliminować.

Możesz to również zrobić za pomocą wtyczki WP Sweep, jak wyjaśniono poniżej.

Użyj wtyczki, aby wyczyścić bazę danych WordPress

Najłatwiejszą rzeczą, szczególnie dla osób nietechnicznych, jest użycie wtyczki WordPress do oczyszczenia bazy danych.

Najpopularniejsze wtyczki optymalizujące bazy danych to:

Zalecamy WP-Sweep, ponieważ w miarę możliwości używa odpowiednich funkcji usuwania WordPress, zamiast uruchamiać bezpośrednie zapytania MySQL usuwające. Wtyczka WP-Optimize wykorzystuje zapytania SQL do bezpośredniego usuwania, które mogą pozostawić osierocone dane.

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. Możesz to robić okresowo, optymalizując tabele bazy danych, może raz na kilka miesięcy.

Zaawansowane czyszczenie

Czasami, jeśli korzystasz z hostingu współdzielonego, WP Sweep może się zawiesić z powodu ograniczeń PHP. Zwykle dzieje się tak, gdy ma dużą liczbę wpisów w bazie danych do usunięcia, na przykład podczas usuwania stanów przejściowych.

Jeśli nie możesz użyć wtyczki do oczyszczenia bazy danych, musisz to zrobić, uruchamiając zapytania bezpośrednio do bazy danych. Na przykład zapytanie mające na celu usunięcie stanów przejściowych to:

USUŃ Z `wp_options` GDZIE `nazwa_opcji` LIKE ('%\_transient\_%');

Uwaga: pamiętaj o zmianie domyślnego prefiksu (wp_) na ten, którego używa Twoja baza danych.

Możesz uruchomić to zapytanie w phpMyAdmin (narzędzie dostępnym z cPanel) lub za pomocą narzędzia do zarządzania bazami danych, takiego jak Sequel Pro (Mac) lub MySQL Workbench (Windows, Linux, Mac).

Używam Sequel Pro i wolę go od phpMyAdmin, ponieważ jest szybszy i stabilniejszy, phpMyAdmin może czasami ulec awarii (hosting współdzielony, ograniczenia PHP). Nigdy nie korzystałem z MySQL Workbench do porównań.

Nie zapomnij najpierw wykonać kopii zapasowej bazy danych

Świetny tutorial na temat uruchamiania zapytań w phpMyAdmin znajdziesz na wpmudev.com .

Z mojego doświadczenia wynika, że ​​jednym z najistotniejszych problemów z bazą danych WordPressa jest duża liczba wpisów w bazie danych w tabeli wp_options z funkcją autoload: tak.

Możesz je znaleźć i usunąć za pomocą wtyczki – Clean Options – lub bezpośrednio w tabeli wp_options za pomocą phpMyAdmin lub Sequel Pro.

Oto dobry tutorial na temat korzystania z wtyczki Clean Options , ale czyszczenie tych opcji jest żmudnym zadaniem i niezależnie od tego, jak to zrobisz, niestety nie ma łatwego sposobu.

Ponieważ wtyczka pokazuje „ prawdopodobnie osierocone opcje”, musisz uważać, aby nie usunąć czegoś, czego nie powinieneś i nie zepsuć swojej witryny.

To, co musisz zrobić, to zidentyfikować opcje, które są bezużyteczne, na przykład ze starych wtyczek, których już nie masz. Musisz wiedzieć, jaki prefiks ma każda wtyczka; na przykład, jeśli widzisz wiele opcji z przedrostkiem „wcj_” pochodzącym z Booster for WooCommerce . Jeśli nie używasz już Boostera, możesz je bezpiecznie usunąć.

Nie korzystam z wtyczki Clean Options, lubię pracować bezpośrednio na bazie danych w Sequel Pro i podchodzę do tego tak samo jak w 1998 roku grając w Tomb Raider, zapisując grę po każdym skoku.

Tworzę kopię zapasową tabeli, wyszukuję opcje, usuwam opcje, sprawdzam błędy, ponownie tworzę kopię zapasową, powtarzam.

Teraz masz czystą bazę danych WordPress. Utrzymuj go w czystości, stosując poniższe najlepsze praktyki.

Najlepsze praktyki, aby utrzymać czystość bazy danych WordPress

W żadnej szczególnej kolejności.

1. Zapobiegaj gromadzeniu się wersji i ograniczaj liczbę wersji przechowywanych w bazie danych, na przykład 3. Dodaj następujący kod do pliku wp-config.php.

zdefiniuj('WP_POST_REVISIONS', 3 );

2. Regularnie opróżniaj kosz lub ustaw go tak, aby opróżniał się automatycznie po kilku dniach, na przykład po 5 dniach. Dodaj następujący kod do pliku wp-config.php.

zdefiniuj( 'EMPTY_TRASH_DAYS', 5 );

3. Regularnie usuwaj spam.

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

5. Użyj wtyczki WP Sweep, aby zoptymalizować tabele i okresowo sprawdzać transjenty (i przeglądać je, jeśli to konieczne).

6. 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 możesz tego uniknąć, nie używaj wtyczek powodujących wzdęcia, dbaj o czystość bazy danych WordPressa.

7. Jeśli usuniesz wtyczkę, której na pewno nie chcesz już używać, wyczyść ją po niej.

Większość wtyczek nie sprząta po sobie. Musisz więc usunąć tabele bazy danych dodane przez wtyczkę i usunąć opcje wtyczki z tabeli wp_options.

To kończy nasz czwarty krok w poszukiwaniu szybszej i bardziej skalowalnej witryny WordPress.

Uwagi

11 odpowiedzi na „Jak oczyścić bazę danych WordPress”

  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 *

angielski