Kiirenda oma veebisaiti MySQL päringute vahemällu

Kiirenda oma veebisaiti MySQL päringute vahemällu
Kiirenda oma veebisaiti MySQL päringute vahemällu

Video: Kiirenda oma veebisaiti MySQL päringute vahemällu

Video: Kiirenda oma veebisaiti MySQL päringute vahemällu
Video: Nastya and the story about mysterious surprises - YouTube 2024, Aprill
Anonim

Veebirakenduse kiirendamise üks parimaid viise on teie andmebaasis päringupõhise vahemällu salvestamine, mis salvestab sageli kasutatavaid SQL-päringuid mällu, et saada järgmisel lehel sama päringut pakkuv peaaegu kiire juurdepääs.

Põhjus, miks see meetod on nii võimas, on see, et te ei pea oma veebirakenduses muudatusi tegema, peate lihtsalt pisut mälu ohverdama. See ei lahenda kõiki teie probleeme, kuid see kindlasti ei saa haiget teha.

Märkus. Kui teie rakendus värskendab tabelid sageli, siis päringu vahemälu puhastatakse pidevalt ja te ei saa sellest palju kasu ega kasu. See on ideaalne rakendusele, mis enamasti loeb andmebaasi vastu, näiteks WordPressi blogi. See ei tööta ka siis, kui kasutate virtuaalserverit.

Vahemälu vahemällu lubamine serveriga käimas

Esimene asi, mida soovite teha, on veenduda, et teie MySQL-i installimisel on tegelikult saadaval päringupõhine vahemällu. Enamik distributsioonid teevad seda, kuid peaksite ikkagi kontrollima.

Sa tahad seda käsku kasutada MySQL konsoolis, mis annab teile teada, kas päringute vahemällu on saadaval.

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

Ära eksi see, et päringute vahemällu on tegelikult lubatud, sest enamus pakkujaid ei hakka seda vaikimisi lubama. Kummaline küll, minu Ubuntu Feisty installil oli see juba lubatud …

Järgnevalt peame kontrollima ja kontrollima, kas päringu vahemällu on lubatud. Peame kontrollima rohkem kui üht muutujat, nii et me võime seda ka korraga teha, kontrollides muutuja päringut%

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 | +------------------------------+---------+

Siin on nimekirjas tähtsad asjad ja mida need tähendavad:

  • query_cache_size - See on baitide vahemälu suurus. Selle väärtuse määramine 0-ni blokeerib vahemällu.
  • query_cache_type - See väärtus peab olema vaikimisi lubatud vaikevahetuseks vaikeväärtuseks ON või 1.
  • query_cache_limit - See on maksimaalse suurusega päring (baitides), mis vahemällu salvestatakse.

Kui päring_cache_size väärtus on seatud väärtusele 0 või soovite selle lihtsalt muuta, peate käivitama järgmise käsu, pidades meeles, et väärtus on baitides. Näiteks kui soovid 8MB-le vahemällu eraldada, kasutame väärtust 1024 * 1024 * 8 = 8388608.

SET GLOBAL query_cache_size = 8388608;

Samamoodi saab teisi valikuid seada sama süntaksiga:

SET GLOBAL query_cache_limit = 1048576;

SET GLOBAL

query_cache_type

= 1;

Nüüd, kuidas me teame, kas see tegelikult töötab? Võite kasutada käsku SHOW STATUS, et tõmmata kõik muutujad, mis algavad "Qc" -ga, et vaadata pilti kapoti all toimuvast.

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)

Te märkate statsist, et mul on palju vaba mälu. Kui teie server näitab palju madalamaid ploome, peate võib-olla kaaluma selle väärtuse suurendamist, kuid ma ei pääse veebiserverile päringu vahemällu liiga palju mälu … peate apache, php, ruby või mida iganes sa kasutad.

Luba konfiguratsioonifailis

Kui soovite, et need muudatused püsiksid mysqli serveri taaskäivitamise või taaskäivitamise korral, peate need lisama oma MySQLi /etc/mysql/my.cnf konfiguratsioonifaili. Pidage meeles, et see võib olla teie asukohas erinevates asukohtades.

Avage fail sudo või rootrežiimis tekstitöötlusprogrammiga ja lisage need väärtused, kui need failis veel pole. Kui nad eksisteerivad, siis lihtsalt kommenteerige neid.

query_cache_size = 268435456 query_cache_type=1 query_cache_limit=1048576

Vahemälu päring võib oma veebirakenduse kiirust oluliselt parandada, eriti kui teie rakendus enamasti loeb. Oleku jälgimiseks kasutage ülaltoodud meetodeid ja vaadake, kuidas see aja jooksul toimib.

Soovitan: