Dziś 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?
Comments