Czyszczenie i optymalizacja bazy danych Joomla 3 (część 2)

W ostatnim artykule zaczęliśmy omawiać ten problem jak wyczyścić i zoptymalizować bazę danych joomla 3 . Dzisiaj będziemy kontynuować ten obszerny temat i porozmawiać o tym, jak oczyścić bazę niepotrzebnych i nieużywanych tabel, które mogą pozostać po usunięciu rozszerzeń.

Jak usunąć rozszerzenia i oczyścić witrynę ze śmieci rozmawialiśmy w jednym z poprzednich artykułów. Nie dotknęliśmy jednak bazy danych i nie sprawdziliśmy jej obecności po pozostawieniu tabel po usunięciu tych rozszerzeń.

W ramach tego artykułu nie rozważę wszystkich możliwych rozszerzeń i ich tabel, kilka przykładów wystarczy, aby zrozumieć istotę. Jednym z najbardziej uderzających przykładów jest standardowe rozszerzenie Joomla 3 o nazwie Smart Search, które może nadmuchać bazę danych do niewiarygodnych rozmiarów. Prawie o nim i zostanie on omówiony w tym artykule, a na marginesie będziemy mówić o innych rozszerzeniach, których tabele lub wzmianki pozostają w bazie danych nawet po ich usunięciu.

Jak już wspomniano, istnieje standardowe rozszerzenie Joomla ustawione jako „Smart Search”, które zawiera wtyczki, moduł i komponent. Jego istota polega na tym, że użytkownik podczas wyszukiwania niezbędnych informacji wybiera kilka liter szukanego wyrażenia, a inteligentne wyszukiwanie oferuje kilka możliwych opcji, zmniejszając w ten sposób czas wyszukiwania.

Wszystko jest dobrze, coś wydaje się przydatne, ale dla funkcjonowania tego rozszerzenia wymaga wstępnego indeksowania strony, po czym ogromna liczba słów kluczowych jest wprowadzana do bazy danych. Dzięki takiemu podejściu z czasem gromadzi się niesamowita liczba rekordów w tabelach bazy danych, a jego rozmiar jest po prostu zaskakujący. Aby nie być bezpodstawnym, pokażę konkretny przykład, w jaki sposób baza danych Joomla może zostać zawyżona, jeśli zaczniesz używać inteligentnego wyszukiwania:

Aby nie być bezpodstawnym, pokażę konkretny przykład, w jaki sposób baza danych Joomla może zostać zawyżona, jeśli zaczniesz używać inteligentnego wyszukiwania:

Imponujące, prawda? Rozmiar tabeli z materiałami wynosi 1,6 MB, a rozmiar tabel inteligentnego wyszukiwania jest następujący:

Nazwa tabeliRozmiar, MBjos_finder_terms

22.6 jos_finder_links_terms * (wszystkie możliwe tabele) 9 jos_finder_links 1.6 Inne ( jos_finder_taxonomy , jos_finder_taxonomy_map , jos_finder_tokens itp.) 1

W rezultacie absolutnie wszystkie materiały (z których około 40 sztuk) zajmują 1,6 megabajta przestrzeni, a rozmiar indeksowanych danych dla inteligentnego wyszukiwania przekracza 34 megabajty. Okazuje się, że rozmiar bazy danych o ponad 95% składa się z niepotrzebnych danych, które są wykorzystywane przez wszystkich.

Niezależnie od tego, czy użyć przypadku „Inteligentne wyszukiwanie”, jest oczywiście każdy, ale jeśli nie chcesz skończyć z podobnym wynikiem, radzę ci się go pozbyć. Jak usunąć to rozszerzenie jest zrozumiałe (jeśli nie jest jasne) przeczytaj ten artykuł ), ale co z wyżej wymienionymi tabelami, które mogą (nie zawsze, ale mogą) pozostać w bazie danych i same z siebie nie znikną, to jest pytanie, na które postaram się odpowiedzieć.

Zacznijmy więc, od początku, usuwamy wszystkich przedstawicieli rozszerzenia „Smart Search” (wtyczki, komponent i moduł). Ponieważ przechodzimy do phpMyAdmin w naszej bazie danych MySQL i znajdujemy wszystkie tabele związane z inteligentnym wyszukiwaniem (25 sztuk), nie jest trudno je znaleźć, każda tabela ma w nazwie słowo _ finder . Jeśli ktoś boi się to zrobić, najpierw wyeksportuj je na wszelki wypadek (jeśli coś się wydarzy).

Chcę zwrócić uwagę, gdy wybierzesz tabele do późniejszego usunięcia, uważnie przyjrzyj się ich nazwom, jest całkiem możliwe, że przypadkowo zawiesisz tabele o nazwach _fields * , które nie mają nic wspólnego ze Smart Search.

Wybierz wszystkie tabele i na samym dole strony na liście rozwijanej „Z zaznaczonym” wybierz „Usuń”:

Wybierz wszystkie tabele i na samym dole strony na liście rozwijanej „Z zaznaczonym” wybierz „Usuń”:

Następnie zostaniesz zapytany, czy naprawdę konieczne jest usunięcie danych z tabeli? Na to pytanie należy odpowiedzieć pozytywnie:

Na to pytanie należy odpowiedzieć pozytywnie:

I znowu mała uwaga: nie trzeba usuwać tabel z bazy danych, zanim samo rozszerzenie nie zostanie usunięte, może to spowodować pewne problemy.

To wszystko, pozbyliśmy się „Smart Search” i jego tabel w bazie danych, ale to nie koniec. Faktem jest, że w Joomla 3 jest sprawdzenie obecności takich standardowych tabel, a jeśli teraz przejdziesz do panelu sterowania i przejdziesz do sekcji sprawdzania bazy danych (Rozszerzenia -> Menedżer rozszerzeń -> Baza danych), zobaczysz następujące zdjęcie:

Jak powiedziałem, jest to wynik wbudowanego sprawdzania braku standardowych tabel w bazie danych. Sytuacja z pewnością nie jest przyjemna, ale wciąż nie jest tak straszna. Wszystko, czego potrzebujemy, aby pozbyć się tego bałaganu w panelu sterowania, to usunąć lub usunąć niektóre pliki Joomla.

W żadnym wypadku nie klikaj przycisku „Napraw”, w przeciwnym razie wszystkie usunięte tabele zostaną ponownie utworzone, a cały proces będzie musiał zostać powtórzony.

Są tylko cztery pliki (jeśli spojrzysz na zrzut ekranu, możesz zobaczyć nazwy niezbędnych plików):

  • 3.0.0.sql
  • 2.5.0-2011-12-23.sql
  • 2.5.0-2011-12-21-2.sql
  • 3.7.0-2017-03-19.sql

Pliki te można znaleźć na stronie administrator / components / com_admin / sql / updates / mysql . Co z nimi zrobić? Nic specjalnego - usuń lub wyczyść. Które pliki mogą zostać usunięte (wyczyszczone), a które tylko do edycji - patrz tabela:

Plik Akcje 3.0.0.sql Usuń linie zawierające wpisy finder_ 2.5.0-2011-12-23.sql Usuń lub usuń 2.5.0-2011-12-21-2.sql Usuń lub wyczyść 3.7.0-2017 -03-19.sql Usuń lub wyczyść

We wszystkich tych plikach, z wyjątkiem pierwszego, mówimy wyłącznie o tabelach Smart Search, dlatego można je całkowicie usunąć z serwera lub usunąć ich zawartość. Ale plik 3.0.0.sql sprawdza tabele nie tylko inteligentnego wyszukiwania, ale także innych. Oczywiście możesz go również usunąć, ale w tym przypadku nie będziesz otrzymywać wiadomości o usuniętych innych standardowych rozszerzeniach tabeli. Dlatego myjemy tylko niezbędne zapisy.

Nie ma potrzeby usuwania wielu rekordów, jest ich stosunkowo mało - 26 sztuk. Znajdują się one w liniach 49-71 i 110-112 włącznie.

Po wyczyszczeniu plików możesz wrócić do panelu sterowania i zobaczyć, jak robimy z bazą danych, wszystko powinno być świetnie!

W ten sam sposób można pozbyć się sprawdzania innych nieistniejących tabel w bazie danych Joomla 3, na przykład po usunięciu komponentu Banners i innych. Konieczne jest również usunięcie linii z pliku 3.0.0.sql , w którym znajdują się odwołania do tabel tych rozszerzeń, na przykład _banners dla komponentu banera i tak dalej. Nic skomplikowanego!

Co z nimi zrobić?