Pagreitinkite savo svetainę naudodami „MySQL Query Caching“
Vienas iš geriausių būdų, kaip pagreitinti jūsų žiniatinklio taikomąją programą, yra įgalinti užklausos talpyklą savo duomenų bazėje, kuri saugo dažniausiai naudojamas SQL užklausas atmintyje, kad būtų galima iš karto pasiekti kitą puslapį, kuris pateikia tą patį prašymą.
Priežastis, dėl kurios šis metodas yra toks galingas, kad jūs neturite daryti jokių pakeitimų savo žiniatinklio programoje, tiesiog turite paaukoti šiek tiek atminties. Tai nepadės išspręsti visų jūsų problemų, tačiau tai tikrai negali pakenkti.
Pastaba: jei jūsų taikomoji programa dažnai atnaujina lenteles, užklausos talpykla bus nuolat išvaloma ir jūs to nepadarysite. Tai idealiai tinka programai, kuri dažniausiai skaito duomenų bazę, pvz., „WordPress“ tinklaraštį. Tai taip pat neveiks, jei naudojate bendrai naudojamą prieglobą.
Įgalinti talpyklą su serverio veikimu
Pirmas dalykas, kurį norite padaryti, yra įsitikinti, kad MySQL įdiegimas iš tikrųjų turi užklausos talpyklą. Dauguma paskirstymų atliekami, bet turėtumėte patikrinti.
Jūs norite paleisti šią komandą iš savo „MySQL“ konsolės, kuri parodys, ar yra užklausos talpykla.
mysql> rodyti kintamuosius, pvz., „have_query_cache“; + ------------------ + ------- + | Variable_name | Vertė | + ------------------ + ------- + | have_query_cache | TAIP | +------------------+-------+
Nesuklyskite taip, kad užklausos talpykla iš tikrųjų yra įjungta, nes dauguma prieglobos paslaugų teikėjų neaktyvins šio nustatymo. Keista, kad mano „Ubuntu Feisty“ diegimas jau buvo įgalintas ...
Toliau turėsime patikrinti ir pamatyti, ar įjungtas užklausos talpinimas. Turėsime patikrinti daugiau nei vieną kintamąjį, todėl mes taip pat galime tai padaryti vienu metu, patikrindami kintamąjį užklausą%
mysql> rodyti kintamuosius, tokius kaip „užklausa%“; + ------------------------------ + --------- + | Variable_name | Vertė | + ------------------------------ + --------- + | query_alloc_block_size | 8192 | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 8388608 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | | query_prealloc_size | 8192 | +------------------------------+---------+
Štai svarbūs sąrašo elementai ir tai, ką jie reiškia:
- query_cache_size - Tai yra talpyklos dydis baitais. Šios reikšmės nustatymas į 0 efektyviai išjungs talpyklą.
- query_cache_type - Ši reikšmė turi būti įjungta arba 1, jei užklausos talpyklai bus įjungta pagal nutylėjimą.
- query_cache_limit - Tai maksimalaus dydžio užklausa (baitais), kuri bus išsaugota talpykloje.
Jei užklausos_cache_size reikšmė yra 0 arba tiesiog norite ją pakeisti, turėsite paleisti šią komandą, turint omenyje, kad vertė yra baitais. Pavyzdžiui, jei norėjote priskirti 8MB talpyklai, kurią naudosime, 1024 * 1024 * 8 = 8388608 kaip vertę.
SET GLOBAL query_cache_size = 8388608;
Panašiai kitas parinktis galima nustatyti naudojant tą pačią sintaksę:
SET GLOBAL query_cache_limit = 1048576;SET GLOBALquery_cache_type
= 1;
Dabar kaip mes pasakyti, ar tai iš tikrųjų veikia? Galite naudoti komandą SHOW STATUS, kad ištrauktumėte visus kintamuosius, prasidedančius „Qc“, kad galėtumėte pažiūrėti, kas vyksta po gaubtu.
mysql> RODYTI STATUSĄ LIKE „Qc%“; + ------------------------- + -------- + | Variable_name | Vertė | + ------------------------- + -------- + | Qcache_free_blocks | 65 | | Qcache_free_memory | 201440 | | Qcache_hits | 18868 | | Qcache_inserts | 2940 | | Qcache_lowmem_prunes | 665 | | Qcache_not_cached | 246 | | Qcache_queries_in_cache | 492 | | Qcache_total_blocks | 1430 | + ------------------------- + -------- + 8 eilutės (0.00 sek.)
Statistikose pastebėsite, kad turiu daug laisvos atminties. Jei jūsų serveryje yra daug „lowmem“ džiovintų slyvų, jums gali tekti apsvarstyti galimybę padidinti šią vertę, bet aš neturėčiau per daug atminties už žiniatinklio serverio užklausų talpyklą ... turite palikti atmintį, skirtą apache, php, ruby, ar ką naudojate.
Įgalinti konfigūracijos faile
Jei norite, kad šie pakeitimai išliktų perkrauti arba iš naujo paleisti „mysql“ serverį, turėsite juos įtraukti į savo /etc/mysql/my.cnf konfigūracijos failą MySQL. Atminkite, kad gali būti kitoje jūsų įrenginio vietoje.
Atidarykite failą naudodami teksto redaktorių sudo arba šaknų režimu, tada pridėkite šias reikšmes, jei jos dar nėra faile. Jei jie egzistuoja, tiesiog išimkite juos.
query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576
Užklausos talpykla gali žymiai pagerinti jūsų žiniatinklio programos greitį, ypač jei jūsų programa dažniausiai skaito. Stebėkite būseną, naudodamiesi aukščiau aprašytais būdais, ir žiūrėkite, kaip jis veikia laikui bėgant.