Czyszczenie i optymalizacja bazy danych Joomla 3

  1. Historia zmian materiałów i tabela jos_ucm_history

Witamy na stronach witryny Joom4all. Dzisiaj porozmawiamy o tym, jak zoptymalizować bazę danych popularnego systemu zarządzania treścią Joomla 3.

Wszyscy wiemy (być może ktoś dowie się o tym z tego artykułu), że wraz ze wzrostem wielkości bazy danych obciążenie serwera wzrasta, a ilość wolnego miejsca na dysku na serwerze spada. Więc co powiesz, nie na darmo, że płacimy za hosting. Tak jest, ale koszt hostingu zależy bezpośrednio od potrzeb i im większe obciążenie strony, tym więcej trzeba za nią zapłacić.

Jeśli nie jesteś szczególnie zainteresowany komponentem finansowym i jesteś gotów zapłacić nieograniczoną ilość pieniędzy za pracę witryny, pomyśl o innym problemie - szybkości ładowania strony. Baza danych, w której zgromadziła się wystarczająca ilość śmieci, nie wpływa w najlepszy sposób na szybkość ładowania stron w witrynie, a współcześni internauci nie są cierpliwi i mogą opuścić witrynę bez czekania na jej załadowanie.

W rezultacie wydawałoby się, że jest to niewielki problem, który może prowadzić do poważnych konsekwencji - zmniejszenie liczby odwiedzających, sprzedaży, dochodów itd. Teraz zadaj sobie pytanie - czy potrzebuję tego?

Zważywszy na wady rozszerzonej bazy danych, doszliśmy do wniosku, teraz spójrzmy na powody zwiększenia wielkości bazy danych w Joomla 3 i porozmawiajmy o tym, jak to naprawić.

Fakt, że z czasem baza danych Joomla zaczyna rosnąć, jest faktem, ale nie zawsze gwałtowny skok wielkości bazy danych wiąże się ze wzrostem liczby materiałów. W mojej praktyce było wiele przypadków, w których ilość materiałów była niezmieniona, a baza danych wzrastała na naszych oczach.

Jaki jest powód zwiększenia wielkości bazy danych? Przede wszystkim są to rozszerzenia innych firm, podczas ich instalowania do bazy danych Joomla dodawane są nowe tabele i rekordy. Ponadto istnieją rozszerzenia, które nie „zakrywają swoich utworów” nawet po ich usunięciu - rozszerzenie zostało usunięte, a jego tabele pozostały w bazie danych.

Innym częstym powodem są rozszerzenia instalowane domyślnie w Joomla 3. Na przykład rozszerzenia, takie jak „Smart Search”, a także wersjonowanie materiałów (nie jest to rozszerzenie). Przyjrzyjmy się im bardziej szczegółowo.

Historia zmian materiałów i tabela jos_ucm_history

W Joomla, począwszy od wersji 3.2, programiści wprowadzili nową funkcję - zapisywanie zmian (wersji) artykułów. Ponadto ta opcja jest domyślnie włączona w Joomla.

Co daje tę szansę? Szczerze mówiąc, dla większości użytkowników absolutnie nic, oprócz zwiększenia rozmiaru bazy danych. Istota tej funkcji polega na tym, że Joomla po zmianie materiału zachowuje swoje stare wersje, a nie tylko jedną - dwie, ale dziesięć na raz!

Okazuje się więc, że przez 10-krotną zmianę materiału otrzymujemy dziesięć jego kopii, co znacznie zwiększa rozmiar bazy danych. A najbardziej nieprzyjemną rzeczą w tej sytuacji jest to, że dane są przechowywane w formacie Json, co oznacza, że ​​zamiast pojedynczego znaku (lub litery) otrzymujemy ten zestaw „u0412”. Okazuje się, że każda postać w materiale zostanie zastąpiona przez inne, w wyniku czego każda wersja materiału jest około 6 razy większa niż oryginał, a my mamy także 10:

Bardziej szczegółowo na temat kodowania Json, porozmawiamy o innym czasie, a teraz najważniejszą rzeczą do zrozumienia jest to, że jednym z głównych powodów zwiększenia rozmiaru bazy danych w Joomla jest wersjonowanie materiałów. Co mogę zrobić? Po pierwsze, zmniejsz liczbę kopii wersji materiału lub całkowicie wyłącz tę opcję. Aby to zrobić, przejdź na stronę „Ustawienia menedżera materiałów” (kliknij przycisk „Ustawienia” na stronie „Menedżer materiałów”) i przejdź do karty „Formularz edycji”:

W większości przypadków nie ma potrzeby przechowywania starszych wersji materiału w bazie danych, więc sugeruję wyłączenie tej opcji w ogóle, a jeśli nadal jej potrzebujesz, zmniejsz liczbę wersji do minimum.

Ale nie wszystko jest takie proste, nawet jeśli wyłączysz funkcję zapisywania wersji materiałów, wcześniej utworzone wersje nadal pozostaną w bazie danych. W tym przypadku nie ma z nich żadnych korzyści i lepiej się ich pozbyć. Aby to zrobić, przejdź do phpMyAdmin , znajdź tabelę jos_ucm_history , w której przechowywane są wersje zmian materialnych i wyczyść ją (zamiast prefiksu jos może być dowolna inna instalacja joomla ):

Aby to zrobić, przejdź do phpMyAdmin , znajdź tabelę jos_ucm_history , w której przechowywane są wersje zmian materialnych i wyczyść ją (zamiast prefiksu jos może być dowolna inna   instalacja joomla   ):

Dla jasności na powyższym zrzucie ekranu pokazałem rozmiar tabeli jos_ucm_history, która przechowuje historię zmian, oraz tabele z materiałami jos_content . Rozmiar tych tabel jest ponad dwukrotnie większy, pomimo tego, że istnieje bardzo niewiele materiałów i prawie nie były edytowane.

Podsumowując, chcę zauważyć, że w niektórych przypadkach można zmniejszyć rozmiar bazy danych Joomla do 95%, wystarczy wyłączyć powyższą funkcję i wyczyścić tabelę jos_ucm_history . Sprawdź także tabele jos_ucm_base i jos_ucm_content (nie zapomnij o prefiksie), być może będziesz musiał je wyczyścić.

Na tym chyba kończę. W następnym artykule ( inteligentne wyszukiwanie i jego wpływ na rozmiar bazy danych ) Powiem ci, jakie inne tabele możesz usunąć w bazie danych Joomla, tym samym jeszcze bardziej zmniejszając ich objętość.

Teraz zadaj sobie pytanie - czy potrzebuję tego?
Jaki jest powód zwiększenia wielkości bazy danych?
Co daje tę szansę?
Co mogę zrobić?