Jak znacząco zmniejszyć bazę WordPressa? Wyczyść Comment Meta!

wordpress-databaseDziś przedstawię Wam prostą receptę na odchudzenie bazy danych Waszego WordPressa.

Może to być zaskakujące dla niektórych, ale najszybciej rosnącą tabelą w większości baz danych jest wp_commentmeta.

Czasem zawiera ona kilka istotnych rekordów, ale generalnie jest tam śmietnik pozostawiony przez wtyczkę Akismet.

Wziąłem pierwszy lepszy „mały blog” i oto co widzę w phpMyAdmin:

  • wp_comments 57,9 KB -> tyle zajmuje 107 komentarzy
  • wp_commentmeta 6,5 MB -> co stanowi ponad połowę całej bazy!

Większość z rekordów w tabeli wp_commentmeta, które spokojnie możemy usunąć to:

  • akismet_result
  • akismet_history
  • akismet_as_submitted

OK – tyle tytułem wstępu, a teraz zabieramy się za robotę :)

Po pierwsze robimy backup naszej bazy danych – jakby coś się jednak zepsuło…

Następnie usuwamy z tabeli wp_commentmeta wszystkie rekordy, które nie są związane z jakimkolwiek rekordem w tabeli komentarzy (wp_comments)

W tym celu klikamy na zakładkę SQL w phpMyAdmin i wpisujemy:

DELETE FROM wp_commentmeta WHERE comment_id
NOT IN ( SELECT comment_id FROM wp_comments )

Oczywiście jeśli macie inny prefiks bazy (a powinniście mieć) to zamieniamy wp_ na waszprefiks_

W przypadku bloga, na którym pracowałem za pomocą powyższej komendy usunąłem 5 242 zbędnych rekordów.

Teraz pozostaje nam jeszcze usunięcie rekordów, które są zbędne, chociaż są związane z naszymi komentarzami. W tym celu wydajemy następujący rozkaz dla bazy danych:

DELETE FROM wp_commentmeta WHERE meta_key LIKE "%akismet%"

W ten sposób usunąłem jeszcze 152 zbędne rekordy.

Na koniec nie zapomnijcie o optymalizacji tabeli! W zasadzie warto zoptymalizować wszystkie tabele, które tego wymagają.

W moim przypadku ten prosty manewr pozwolił na zmniejszenie tabeli wp_commentmeta z 6,5 MB do 9,1 KB, a cała baza odchudziła się niemal o połówę!

A jak to wygląda u Was?


Opublikowano

w

przez

Komentarze

13 odpowiedzi na „Jak znacząco zmniejszyć bazę WordPressa? Wyczyść Comment Meta!”

  1. Awatar DMati

    tabela comments => 144 KB
    tabela commentsmeta => tyle samo KB – jeszcze nigdy nie czyściłem ręcznie :)

    „Na koniec nie zapomnijcie o optymalizacji tabeli! W zasadzie warto zoptymalizować wszystkie tabele, które tego wymagają.”

    Nie korzystam z myisam tylko z innodb, więc tutaj też ok.

    1. Awatar Jakub Milczarek

      Bardzo możliwe – albo nie używasz Akismeta, albo Twoją stronę omijają spamboty :)

      1. Awatar DMati

        CloudFlare blokuje część, pozostały spam blokuje wtyczka stop spammers, wordfence blokuje automaty, w efekcie Akismet raz na jakiś czas coś tam wyłapie jak przejdzie wszystkie przeszkody, ale nie ma za wiele do roboty = mniej do bazy wrzuca.

        Tutaj opis wtyczki: http://matiweb.com/wordpress/stop-spammers-swietne-narzedzie-zwalczania-spamu-martwych-rejestracji/

        A automatów spamujących codziennie od cholery :-) Także chciałbym ale niestety mnie nie omijają ;)

        1. Awatar Jakub Milczarek

          To wiele wyjaśnia :)
          Mój wpis był dla typowych użytkowników Akismeta, których jest chyba przeważająca większość…

          1. Awatar DMati

            W końcu to oficjalna wtyczka do spamu ;)

  2. Awatar DMati

    „Może to być zaskakujące dla niektórych, ale najszybciej rosnącą tabelą w większości baz danych jest wp_commentmeta.”

    U mnie na kilku stronach tabela „postmeta”

    1. Awatar Jakub Milczarek

      Oczywiście – postmeta na większości stron też dość szybko rośnie, ale zawartość tej tabeli jest raczej kluczowa… Szczególnie szybko urośnie kiedy używamy wielu załączników, własnych pól etc.

      1. Awatar DMati

        I wtyczek, które niepotrzebnie w tej tabeli ryją. Przykładowo WordPress SEO i z każdym wpisem 8 czy 9 zbędnych pozycji w tabeli postmeta. Plus, że nowa wersja już tak nie robi :) Jak sporo nowych wtyczek.

  3. Awatar bobiko (@bobiko)

    Jakby nie patrzeć, to sporo userów uzywa też disqusa, wiec też ich problem nie dotyczy ;)

    1. Awatar DMati

      Nie zapominaj, że domyślnie komentarze są synchronizowane – twoja baza baza disqusa. Nie wiem skąd przekonanie, że jak ma się disqus to wszystkie komentarze trafiają tylko do disqusa.

  4. Awatar DiM

    Rozumiem, że jeśli komentowanie jest wyłączone, to baza nie rośnie tak szybko w tradycyjnym WordPressie?

  5. Awatar Muzyka

    Jaką wtyczkę warto zainstalować, aby komentowanie było inne niż standardowe w WordPressie. Na przykład takie, jak w tym serwisie?

  6. Awatar DMati

    Przecie tutaj masz domyślny system komentarzy :P

    Chcesz coś z bajerem to zerknij na inline comments, disqus, jetpack comments, livefire 3