Очищення і оптимізація бази даних Joomla 3 (Частина - 2)

У минулій статті ми почали обговорювати питання як очистити і оптимізувати базу даних Joomla 3 . Сьогодні продовжимо цю велику тему і поговоримо про те, як очистити базу даних від непотрібних і зайвих таблиць, які можуть залишитися після видалення розширень.

Як видаляти розширення і очистити сайт від сміття ми говорили в одній з попередніх статей. Однак ми не чіпали базу даних і не перевіряли її на наявність таблиць залишилися після видалення тих самих розширень.

В рамках даної статті я не буду розглядати всі можливі розширення і їх таблиці, для розуміння суті буде цілком достатньо пари прикладів. І одним з таких найбільш яскравих прикладів це стандартне розширення Joomla 3 під назвою «Розумний пошук», яке здатне роздути базу даних просто до неймовірних розмірів. Якраз про нього і піде мова в даній статті, а попутно поговоримо про інших розширеннях, таблиці або згадки про які залишаються в базі даних навіть після їх видалення.

Як вже було сказано є в стандартному наборі Joomla таке розширення як «Розумний пошук», до складу якого входять плагіни, модуль і компонент. Суть його полягає в тому, що користувач при пошуку необхідної інформації набирає кілька букв шуканої фрази, а розумний пошук пропонує кілька можливих варіантів тим самим скорочує час, витрачений на пошук.

Все б добре, річ щось на зразок корисна, але для функціонування даного розширення потрібна попередня індексація сайту, після чого в базу даних заноситься величезна кількість ключових слів. В результаті такого підходу з часом накопичується просто неймовірна кількість записів в таблицях бази даних і її розмір просто дивує. Для того щоб не бути голослівним покажу конкретний приклад того як може бути роздута база даних Joomla якщо Ви почнете використовувати розумний пошук:

Для того щоб не бути голослівним покажу конкретний приклад того як може бути роздута база даних Joomla якщо Ви почнете використовувати розумний пошук:

Вражає, чи не так? Розмір таблиці з матеріалами становить 1.6 Мб, а розмір таблиць розумного пошуку такий:

Ім'я таблиціРозмір, Мбjos_finder_terms

22,6 jos_finder_links_terms * (всі можливі таблиці) 9 jos_finder_links 1,6 Інші (jos_finder_taxonomy, jos_finder_taxonomy_map, jos_finder_tokens і т.д.) 1

В результаті абсолютно всі матеріали (яких близько 40 штук) займають 1.6 мегабайт простору, а розмір проіндексованих даних для розумного пошуку перевищує 34 мегабайта. Виходить, що розмір бази даних більш ніж на 95% складається з непотрібних даних, якими і користуються далеко не всі.

Використовувати чи ні «Розумний пошук» справа звичайно кожного, але якщо Ви не бажаєте отримати в кінцевому підсумку подібний результат, то раджу його позбутися. Як видалити дане розширення зрозуміло (якщо не зрозуміло прочитайте цю статтю ), А як бути з вищезгаданими таблицями, які можуть (не завжди, але можуть) залишитися в базі даних і самі по собі нікуди звідти не подінуться це вже питання, на який я спробую відповісти.

Отже, приступимо, для початку видаляємо всіх представників розширення «Розумний пошук» (плагіни, компонент і модуль). Так як база даних у нас в MySQL переходимо в phpMyAdmin і знаходимо все пов'язані з розумним пошуком таблиці (25 штук), їх знайти не важко, кожна робоча таблиця в імені присутній слово _ finder. Якщо кому-то страшно це робити, то для початку експортуйте їх на всякий випадок (хіба мало чого станеться).

Хочу звернути увагу, коли будите виділяти таблиці для подальшого видалення, уважно дивіться на їх імена, цілком можливо, що Ви випадково зачепите таблиці з ім'ям _fields *, які не мають ніякого відношення до «Розумному пошуку».

Виділили все таблиці і в самому низу сторінки в випадаючому списку «З зазначеними» вибираємо «Видалити»:

Виділили все таблиці і в самому низу сторінки в випадаючому списку «З зазначеними» вибираємо «Видалити»:

Після цього у Вас уточнять - а чи дійсно потрібно видалити дані таблиці? На це питання треба відповісти позитивно:

На це питання треба відповісти позитивно:

І знову невелика замітка, не варто видаляти таблиці з бази даних до того як буде видалено саме розширення, це може спричинити за собою деякі проблеми.

Все, на цьому ми позбулися «Розумного пошуку» і від його таблиць в базі даних, але це ще не кінець. Справа в тому, що в Joomla 3 існує перевірка на наявність подібних стандартних таблиць, і якщо Ви тепер зайдете в панель управління і перейдете в розділ перевірки бази даних (Розширення -> Менеджер розширень -> База даних), то побачите наступну картину:

Як я і говорив це результат вбудованої перевірки на відсутність стандартних таблиць в базі даних. Ситуація, звичайно, не приємна, але все ж не така вже й страшна. Все що нам потрібно для того щоб позбутися від подібної плутанини в панелі управління це видалити або очистити деякі файли Joomla.

Ні в якому разі не натискайте на кнопку «Виправити» інакше всі видалені таблиці будуть заново створені і весь процес доведеться повторювати заново.

Файлу всього чотири (якщо уважно подивитися на скріншот, то можна помітити імена потрібних фалів):

  • 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

Знайти дані файли можна за адресою administrator / components / com_admin / sql / updates / mysql. Що з ними робити? Та нічого особливого - видалити або очистити. Які файли можна видаляти (очищати), а які тільки правити дивіться в таблиці:

Файл Дії 3.0.0.sql Видалити рядки, в яких міститься записи finder_ 2.5.0-2011-12-23.sql Видалити або очистити 2.5.0-2011-12-21-2.sql Видалити або очистити 3.7.0-2017 -03-19.sql Видалити або очистити

У всіх цих файлах, крім першого мова йде виключно про таблиці «Розумного пошуку», отже, їх можна видаляти з сервера повністю або очистити їх вміст. А ось файл 3.0.0.sql перевіряє таблиці не тільки того самого розумного пошуку, а й інші. Звичайно, можна видалити і його, але в цьому випадку Ви не будете отримувати повідомлення про віддалених таблиця інших стандартних розширень. Тому вичищаємо в ньому тільки потрібні записи.

Видаляти багато записів не доведеться, їх відносно мало - 26 штук. Знаходяться вони в рядках 49-71 та 110-112 включно.

Після того як файли були очищені можна знову зайти в панель управління і подивитися як у нас справи з базою даних, все повинно бути чудово!

Точно таким же чином можна позбутися від перевірки інших неіснуючих таблиць в базі даних Joomla 3, наприклад, після видалення компонента «Банери» та інших. Треба точно так же видалити рядки з файлу 3.0.0.sql, в яких є згадки про таблиці цих розширень, наприклад _banners для компонента банерів і так далі. Нічого складного немає!

Що з ними робити?