Убрзајте свој веб сајт помоћу МиСКЛ Кеширања упита
Један од најбољих начина да убрзате своју веб апликацију је да омогућите кеширање упита у вашој бази података, која кешира најчешће коришћене СКЛ упите у меморији за готово тренутни приступ следећом страницом која прави исти захтев.
Разлог зашто је овај метод толико моћан је да не морате да правите никакве измене у својој веб апликацији, само морате да жртвујете мало меморије. Ово неће поправити све ваше проблеме, али дефинитивно не може да боли.
Напомена: ако ваша апликација често ажурира табеле, онда ће кеш упита бити стално прочишћен и нећете добити много или било какву корист од тога. Ово је идеално за апликацију која се углавном чита против базе података, као што је ВордПресс блог. Ово такође неће радити ако радите на дељеном хостингу.
Омогући кеширање са покренутим сервером
Прва ствар коју ћете желети да урадите је да проверите да ли инсталација МиСКЛ-а има подршку за кеширање упита. Већина дистрибуција ради, али ипак треба да проверите.
Желите да покренете ову команду са МиСКЛ конзоле, која ће вам рећи да ли је кеширање упита доступно.
мискл> прикажи варијабле попут 'хаве_куери_цацхе'; + ------------------ + ------- + | Вариабле_наме | Валуе | + ------------------ + ------- + | хаве_куери_цацхе | ДА | +------------------+-------+
Немојте ово замењивати као значење да је кеширање упита заправо омогућено, јер већина хостинг провајдера неће омогућити ово подразумевано. Чудно је да је моја Убунту Феисти инсталација већ омогућила ...
Затим ћемо морати да проверимо и видимо да ли је омогућено кеширање упита. Мораћемо да проверимо више од једне променљиве, тако да можемо све да урадимо одједном проверавајући за варијаблу куери%
мискл> прикажи варијабле попут 'куери%'; + ------------------------------ + --------- + | Вариабле_наме | Валуе | + ------------------------------ + --------- + | куери_аллоц_блоцк_сизе | 8192 | | куери_цацхе_лимит | 1048576 | | куери_цацхе_мин_рес_унит | 4096 | | куери_цацхе_сизе | 8388608 | | куери_цацхе_типе | ОН | | куери_цацхе_влоцк_инвалидате | ОФФ | | куери_преаллоц_сизе | 8192 | +------------------------------+---------+
Ево важних ставки на списку и шта они значе:
- куери_цацхе_сизе - Ово је величина кеша у бајтовима. Постављање ове вредности на 0 ефективно ће онемогућити кеширање.
- куери_цацхе_типе - Ова вредност мора бити ОН или 1 да би се кеширање упита омогућило по подразумеваној вредности.
- куери_цацхе_лимит - Ово је упит максималне величине (у бајтовима) који ће бити кеширан.
Ако је вредност куери_цацхе_сизе постављена на 0 или само желите да је промените, мораћете да покренете следећу команду, имајући у виду да је вредност у бајтовима. На пример, ако желите да доделите 8МБ кешу, користићемо 1024 * 1024 * 8 = 8388608 као вредност.
СЕТ ГЛОБАЛ куери_цацхе_сизе = 8388608;
Слично томе, друге опције се могу поставити са истом синтаксом:
СЕТ ГЛОБАЛ куери_цацхе_лимит = 1048576;СЕТ ГЛОБАЛкуери_цацхе_типе
= 1;
Како да знамо да ли стварно ради? Можете користити наредбу СХОВ СТАТУС да бисте повукли све варијабле које почињу са “Кц” да бисте погледали шта се дешава испод хаубе..
мискл> ПОКАЖИ СТАТУС ЛИКЕ 'Кц%'; + ------------------------- + -------- + | Вариабле_наме | Валуе | + ------------------------- + -------- + | Кцацхе_фрее_блоцкс | 65 | | Кцацхе_фрее_мемори | 201440 | | Кцацхе_хитс | 18868 | | Кцацхе_инсертс | 2940 | | Кцацхе_ловмем_прунес | 665 | | Кцацхе_нот_цацхед | 246 | | Кцацхе_куериес_ин_цацхе | 492 | | Кцацхе_тотал_блоцкс | 1430 | + ------------------------- + -------- + 8 редова у сету (0.00 сец)
У статистици ћете приметити да имам доста слободне меморије. Ако ваш сервер показује много ловмем прунес, можда ћете морати размислити о повећању ове вриједности, али не бих трошио превише меморије на кеширање упита за веб сервер… морате оставити меморију доступну за апацхе, пхп, руби, или шта год користите.
Омогући у Цонфиг датотеци
Ако желите да ове промене преживе поновно покретање или рестартовање мискл сервера, морате да их додате у вашу /етц/мискл/ми.цнф конфигурациону датотеку за МиСКЛ. Имајте на уму да је можда на другој локацији у вашој инсталацији.
Отворите датотеку помоћу уређивача текста у судо или роот моду, а затим додајте ове вриједности ако већ не постоје у датотеци. Ако постоје, само их одбаците.
куери_цацхе_сизе = 268435456 куери_цацхе_типе = 1 куери_цацхе_лимит = 1048576
Кеширање упита може значајно побољшати брзину ваше веб апликације, посебно ако ваша апликација углавном чита. Пратите стање користећи горе наведене методе и погледајте како функционише током времена.