Блог архив - включва заявка за кеширане на MySQL

Проверете дали заявка за кеширане е активирана на вашия сървър, можете да заявите:


Ако query_cache_size = 0, кеша не е активиран.
За да се даде възможност заявка кеширане MySQL добави достатъчно линии в my.cnf (секция [Mysqld]):

query_cache_limit - определя максималния размер на резултата, който ще попадне в кеша
query_cache_size - размер на кеша. Те казват, че 256 - достатъчно, за да го направим по-кеширане твърде "скъпо".

И рестартирате услугата.

Нека се опитаме да се оцени ефекта. Вижте как променящите четения хит броячи в кеша (Qcahe_hits), броят на исканията обявен за недействителен поради липса на памет (Qcache_lowmem_prunes), общият брой на SELECT заявка (веднага след като те са кеширани). правим:

Това е пример за "на студено" кеш за натоварването на сървъра. Двигател - Форум IPB. Qcache_inserts - записите са написани на кеш паметта, Qcache_not_cached - не с възможност за кеширане искания, Qcache_lowmem_prunes - искания, изпуснати поради липса на памет е не, Qcache_free_blocks - броят на разпределените блокове (ще намалява с увеличаване на skeshirovannyh искания).

Оценка на ефективността на кеш препоръчвам разделяне на променливите Qcache_hits на Qcache_hits + Com_select, тъй като, когато плота заявка се увеличава Qcache_hits (ако заявката обработват от кеша) или Com_select (ако искането не е кеширана). Този метод се предлага в «Mysql оптимизация на производителността» О'Райли

В мрежата има и друг начин - Qcache_hits / (Qcache_inserts + Qcache_not_cached). Преди това е може би си заслужава да нулирате всички броячи ПРОМИВАНЕ НА СТАТУТ команда.

Ако Qcache_not_cached метра висока, можете да увеличите променлива poproboavt query_cache_limit - това ще позволи да се увеличи лимита и да кешира резултатите от заявката, че "не са подходящи".

Ето един пример на сървъра с CMS Joomla!
Тук ефектът на кеша е по-очевидна:

Дефрагментиране на кеша с командата:

MySQL> промиване кеш заявка;

Clean - екип:

MySQL> нулиране заявка кеш;

опровержение