Nopeuta Web-sivustoasi MySQL-kyselyn välimuistissa

Nopeuta Web-sivustoasi MySQL-kyselyn välimuistissa
Nopeuta Web-sivustoasi MySQL-kyselyn välimuistissa

Video: Nopeuta Web-sivustoasi MySQL-kyselyn välimuistissa

Video: Nopeuta Web-sivustoasi MySQL-kyselyn välimuistissa
Video: Her Best Move (Comedy, Romance) Full Length Movie - YouTube 2024, Huhtikuu
Anonim

Yksi parhaista tavoista nopeuttaa Web-sovellusta on ottaa käyttöön tietokannan kysely välimuisti, joka välittää usein käytettyjä SQL-kyselyjä muistiin, jotta seuraavaa sivua, joka tekee saman pyynnön, käyttää lähes välittömästi.

Syy tähän menetelmään on niin tehokas, että sinun ei tarvitse tehdä mitään muutoksia web-sovellukseen, sinun on vain uhrata vähän muistia. Tämä ei korjaa kaikkia ongelmia, mutta se ei todellakaan voi vahingoittaa.

Huomaa: jos sovellus päivittää taulukoita usein, kyselyvälimuisti tyhjennetään jatkuvasti, eikä sinulla ole paljon tai mitään hyötyä tästä. Tämä sopii sovellukselle, joka enimmäkseen lukee tietokantaa, kuten WordPress-blogia. Tämä ei myöskään toimi, jos käytät jaettua hostingia.

Ota käyttöön Caching ja palvelimen käyttö

Ensimmäinen asia, jonka haluat tehdä, on varmistaa, että MySQL: n asentamisessa on käytännössä kyselyn välimuistitukea. Useimmat jakelut tekevät, mutta sinun kannattaa kuitenkin tarkistaa.

Haluat suorittaa tämän komennon MySQL-konsolista, joka kertoo, onko kyselyn välimuistin saatavana.

mysql> show variables like 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+

Älä yritä sanoa, että kysely välimuistissa on todella käytössä, koska useimmat hosting-palvelujen tarjoajat eivät aio mahdollistaa tätä oletusarvoisesti. Kumma kyllä, Ubuntu Feisty-asennuksessani oli jo käytössä …

Seuraavaksi meidän on tarkistettava, onko kyselyn välimuisti käytössä. Meidän on tarkistettava useampi kuin yksi muuttuja, joten voimme myös tehdä sen kaiken kerralla tarkistamalla muuttujan kysely%

mysql> show variables like 'query%'; +------------------------------+---------+ | Variable_name | Value | +------------------------------+---------+ | 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 | +------------------------------+---------+

Tässä ovat tärkeät listan kohteet ja mitä he tarkoittavat:

  • query_cache_size - Tämä on välimuistin koko tavuina. Tämän arvon asettaminen arvoon 0 poistaa tehokkaasti välimuistin.
  • query_cache_type - Tämän arvon on oltava ON tai 1, jos kysely välimuistissa on oletusarvoisesti käytössä.
  • query_cache_limit - Tämä on välimuistissa oleva enimmäiskoko-kysely (tavuina).

Jos query_cache_size-arvo on asetettu arvoon 0 tai haluat vain vaihtaa sen, sinun on suoritettava seuraava komento, pitäen mielessä, että arvo on tavuina. Jos esimerkiksi haluat jakaa välimuistin 8 megatavua, käytämme arvoa 1024 * 1024 * 8 = 8388608.

SET GLOBAL query_cache_size = 8388608;

Samoin muut vaihtoehdot voidaan asettaa samalla syntaksilla:

SET GLOBAL query_cache_limit = 1048576;

SET GLOBAL

query_cache_type

= 1;

Nyt, miten kerromme, toimiiko se todella? Voit käyttää SHOW STATUS -komennolla vetää kaikki muuttujat, jotka alkavat "Qc": lla, jotta voit katsoa, mitä tapahtuu huuvan alla.

mysql> SHOW STATUS LIKE 'Qc%'; +-------------------------+--------+ | Variable_name | Value | +-------------------------+--------+ | 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 rows in set (0.00 sec)

Huomaat tilastoista, että minulla on runsaasti vapaata muistia jäljellä. Jos palvelimellasi näytetään paljon alhaisia luumuja, saatat joutua harkitsemaan tämän arvon lisäämistä, mutta en halua käyttää liikaa muistia kyselyn välimuistissa web-palvelimelle … joudut jättämään muistia apache, php, ruby tai mitä käytät.

Ota käyttöön Config-tiedosto

Jos haluat, että nämä muutokset selviävät mysql-palvelimen uudelleenkäynnistyksessä tai uudelleenkäynnistyksessä, sinun on lisättävä ne MySQL: n /etc/mysql/my.cnf -asetustiedostoon. Huomaa, että se saattaa olla eri asennuksessa.

Avaa tiedosto tekstieditorilla sudo- tai root-tilassa ja lisää sitten nämä arvot, jos ne eivät jo ole tiedostossa. Jos ne ovat olemassa, vain poista ne.

query_cache_size = 268435456 query_cache_type=1 query_cache_limit=1048576

Kyselyvälimuistitoiminto voi merkittävästi parantaa verkkosovelluksen nopeutta, varsinkin jos sovelluksesi enimmäkseen lukee. Seuraa tilan yllä olevia menetelmiä ja katso, miten se toimii ajan myötä.

Suositeltava: