Ачыстка і аптымізацыя базы дадзеных Joomla 3

  1. Гісторыя версій матэрыялаў і табліца jos_ucm_history

Вітаю Вас на старонках сайта Joom4all. Сёння пагаворым пра тое, як аптымізаваць базу дадзеных папулярнай сістэмы кіравання кантэнтам Joomla 3.

Усе мы ведаем (магчыма нехта пра гэта даведаецца з гэтага артыкула), што з павелічэннем памеру базы дадзеных расце нагрузка на сервер, акрамя таго памяншаецца даступнае дыскавая прастора на хостынгу. Ну і што скажыце Вы, нездарма ж мы плацім грошы за хостынг. Так-то яно так, але кошт хостынгу напрамую залежыць ад Вашых патрэбаў і чым вышэй нагрузка на сайт, тым больш Вам давядзецца за яго плаціць.

Калі фінансавы складнік Вас асабліва не цікавіць, і Вы гатовыя плаціць неабмежаваныя грошы за працу сайта, тады задумайцеся пра іншую праблему - хуткасці загрузкі сайта. База дадзеных, у якой назапасілася дастатковую колькасць смецця, не лепшым чынам адбіваецца на хуткасці загрузкі старонак сайта, а сучасныя карыстальнікі інтэрнэту не адрозніваюцца цярплівасцю і могуць пакінуць Ваш сайт, не дачакаўшыся яго загрузкі.

У выніку такая здавалася б нязначная праблема, можа прывесці да сур'ёзных наступстваў - памяншэння колькасці наведвальнікаў, аб'ёмаў продажаў, прыбытку і гэтак далей. Цяпер задайце сабе пытанне - а яно мне трэба?

З мінусамі разрослай базы дадзеных разабраліся, зараз давайце разбярэм прычыны павелічэння аб'ёму базы дадзеных у Joomla 3 і пагаворым, як гэта выправіць.

Тое, што з часам база дадзеных Joomla пачынае моцна разрастацца гэта факт, але не заўсёды рэзкі скачок памеру базы дадзеных звязаны з павелічэннем колькасці матэрыялаў. У маёй практыцы было мноства выпадкаў, калі колькасць матэрыялаў было нязменным, а база дадзеных павялічвалася на вачах.

У чым крыецца прычына павелічэння памеру базы дадзеных? Ну, па-першае гэта іншыя пашырэння, пры ўсталёўцы якіх у базе дадзеных Joomla дадаюцца новыя табліцы і запісы. Акрамя таго існуюць пашырэння якія не «замятаюць за сабой сляды» нават пасля іх выдалення - пашырэнне удалено, а яго табліцы засталіся ў базе дадзеных.

Іншая распаўсюджаная прычына гэта пашырэння, якія ўстаноўлены па змаўчанні ў Joomla 3. Напрыклад, такія пашырэння як «Разумны пошук», а гэтак жа версионность матэрыялаў (гэта не зусім пашырэнне). Давайце разгледзім іх больш падрабязна.

Гісторыя версій матэрыялаў і табліца jos_ucm_history

У Joomla пачынаючы з версіі 3.2, распрацоўшчыкі ўвялі новую магчымасць - захаванне змен (версій) артыкулаў. Больш за тое дадзеная опцыя ўключана ў Joomla па змаўчанні.

Што дае дадзеная магчымасць? Калі шчыра, то для большасці карыстальнікаў зусім нічога акрамя павелічэння аб'ёму базы дадзеных. Сутнасць гэтай функцыі заключаецца ў тым, што Джумла пасля змены матэрыялу захоўвае яго старыя версіі, і не проста адну - дзве, а адразу дзесяць!

Такім чынам, атрымліваецца што, змяніўшы матэрыял 10 раз, мы атрымаем дзесяць яго копій, якія моцна павялічваюць памер базы дадзеных. А самае непрыемнае ў гэтай сітуацыі тое, што дадзеныя захоўваюцца ў фармаце Json, а гэта значыць што замест аднаго сімвала (ці літары), мы атрымліваем вось такі набор «\ u0412». Атрымліваецца, што кожны знак у матэрыяле будзе заменены на 6 іншых, у выніку кожная версія матэрыялу больш арыгінала прыблізна ў 6 разоў, а іх у нас да таго ж 10 штук:

Больш падрабязна пра кадыроўку Json мы пагаворым у іншы раз, а цяпер галоўнае зразумець, што адной з галоўных прычын павелічэння аб'ёму базы дадзеных у Joomla як раз такі з'яўляецца версионность матэрыялаў. Што тут можна зрабіць? Ну, па-першае скараціць колькасць копій версій матэрыялу ці ж адключыць дадзеную опцыю наогул. Для гэтага неабходна перайсці на старонку «Настройкі мэнэджара матэрыялаў» (націснуць на кнопку «Настройкі» на старонцы «Мэнэджара матэрыялаў») і перайсці на ўкладку «Форма рэдагавання»:

У большасці выпадкаў няма неабходнасці захоўваць больш старыя версіі матэрыялу ў базе дадзеных, таму я прапаную адключыць дадзеную опцыю наогул, а калі Вам гэта ўсё ж неабходна, то скароціце колькасць версій да мінімуму.

Але не ўсё так проста, нават калі Вы адключыце функцыю захавання версій матэрыялаў, у базе даных ўсё ж застануцца раней створаныя версіі. Карысці ад іх у дадзеным выпадку няма ніякай і лепш ад іх пазбавіцца. Для гэтага неабходна перайсці ў phpMyAdmin, знайсці табліцу jos_ucm_history, у якой захоўваюцца версіі змяненняў матэрыялаў, і ачысціць яе (замест прэфікса jos можа быць любы іншы пазначаны Вамі пры ўсталёўцы Joomla ):

Для гэтага неабходна перайсці ў phpMyAdmin, знайсці табліцу jos_ucm_history, у якой захоўваюцца версіі змяненняў матэрыялаў, і ачысціць яе (замест прэфікса jos можа быць любы іншы пазначаны Вамі пры   ўсталёўцы Joomla   ):

Для нагляднасці на скрыншоце вышэй я паказаў памер той самай табліцы jos_ucm_history, якая захоўвае гістарычныя версіі, і табліцы з матэрыяламі jos_content. Памер гэтых табліц адрозніваецца больш чым у два разы і гэта пры тым, што матэрыялаў зусім мала і яны практычна не рэдагаваліся.

У заключэнне хачу адзначыць, што ў некаторых выпадках можна скараціць памер базы дадзеных Joomla да 95%, дастаткова толькі адключыць вышэйзгаданы функцыю і ачысціць табліцу jos_ucm_history. Акрамя таго праверце табліцы jos_ucm_base і jos_ucm_content (не забывайце пра прэфікс) магчыма іх таксама прыйдзецца чысціць.

На гэтым, мабыць, я скончу. У наступным артыкуле ( разумны пошук і яго ўплыў на памер базы дадзеных ) Я раскажу, якія яшчэ табліцы можна ачысціць ў базе дадзеных Joomla, тым самым скараціўшы яе аб'ём яшчэ больш.

Цяпер задайце сабе пытанне - а яно мне трэба?
У чым крыецца прычына павелічэння памеру базы дадзеных?
Што дае дадзеная магчымасць?
Што тут можна зрабіць?