Ачыстка і аптымізацыя базы дадзеных 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 для кампанента банэраў і гэтак далей. Нічога складанага няма!

Што з імі рабіць?