Mājas lapa » » Paātriniet tīmekļa vietni ar MySQL vaicājumu kešatmiņu

    Paātriniet tīmekļa vietni ar MySQL vaicājumu kešatmiņu

    Viens no labākajiem veidiem, kā paātrināt tīmekļa lietojumprogrammu, ir iespējot vaicājumu kešatmiņā savā datu bāzē, kas glabā atmiņā esošos biežāk lietotos SQL vaicājumus, lai praktiski tūlītēju piekļuvi nākamajai lapai, kas veic to pašu pieprasījumu.

    Iemesls, kāpēc šī metode ir tik spēcīga, ka jums nav jāveic nekādas izmaiņas jūsu tīmekļa lietojumprogrammā, jums vienkārši ir jāiegulda mazliet atmiņas. Tas nenozīmē visas jūsu problēmas, bet tas noteikti nevar sāpēt.

    Piezīme: ja jūsu lietojumprogramma bieži atjauno tabulas, tad vaicājuma kešatmiņa tiks pastāvīgi iztīrīta, un no tā netiks gūts daudz vai nekāds labums. Tas ir ideāli piemērots lietojumprogrammai, kas pārsvarā lasa pret datu bāzi, piemēram, WordPress emuāru. Tas arī nedarbosies, ja darbosies ar kopīgu hostingu.

    Iespējot kešatmiņu ar servera darbību

    Pirmā lieta, ko jūs vēlaties darīt, ir pārliecināties, ka MySQL instalēšana faktiski ir pieejama vaicājuma kešatmiņā. Lielākā daļa izplatīšanas notiek, bet jums vajadzētu pārbaudīt.

    Jūs vēlaties palaist šo komandu no MySQL konsoles, kas jums pateiks, vai ir pieejama vaicājuma kešatmiņa.

    mysql> rādīt mainīgos, piemēram, “have_query_cache”; + ------------------ + ------- + | Mainīgais_nosaukums | Vērtība | + ------------------ + ------- + | have_query_cache | JĀ | +------------------+-------+ 

    Neaizmirstiet to kā tādu, ka vaicājuma kešatmiņa ir faktiski iespējota, jo lielākā daļa hostinga pakalpojumu sniedzēju to neiespēs iespējot pēc noklusējuma. Diemžēl mana Ubuntu Feisty instalācija jau bija iespējota ...

    Tālāk būs jāpārbauda un jāpārbauda, ​​vai vaicājuma kešatmiņa ir iespējota. Mums būs jāpārbauda vairāk nekā viens mainīgais, tāpēc mēs varam to izdarīt arī uzreiz, pārbaudot mainīgo vaicājumu%

    mysql> rādīt mainīgos, piemēram, "query%"; + ------------------------------ + --------- + | Mainīgais_nosaukums | Vērtība | + ------------------------------ + --------- + | 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 | +------------------------------+---------+ 

    Šeit ir svarīgi saraksta elementi un tas, ko tie nozīmē:

    • query_cache_size - Tas ir kešatmiņas lielums baitos. Šīs vērtības iestatīšana uz 0 efektīvi atspējos kešatmiņu.
    • query_cache_type - Šai vērtībai jābūt ieslēgtai vai 1, lai vaicājuma kešatmiņa tiktu aktivizēta pēc noklusējuma.
    • query_cache_limit - Šis ir maksimālais vaicājuma lielums (baitos), kas tiks glabāts kešatmiņā.

    Ja vaicājuma_cache_size vērtība ir iestatīta uz 0 vai vienkārši vēlaties to mainīt, jums būs nepieciešams izpildīt šādu komandu, paturot prātā, ka vērtība ir baitos. Piemēram, ja vēlaties piešķirt 8MB kešatmiņai, kuru vērtība būtu 1024 * 1024 * 8 = 8388608 kā vērtību.

    SET GLOBAL query_cache_size = 8388608;

    Tāpat citas opcijas var iestatīt ar tādu pašu sintaksi:

    SET GLOBAL query_cache_limit = 1048576;
    SET GLOBAL query_cache_type = 1;

    Tagad kā mēs varam pateikt, vai tas tiešām darbojas? Varat izmantot komandu SHOW STATUS, lai vilktu visus mainīgos, kas sākas ar “Qc”, lai apskatītu, kas notiek zem pārsega.

    mysql> RĀDĪT STATUSU LIKE 'Qc%'; + ------------------------- + -------- + | Mainīgais_nosaukums | Vērtība | + ------------------------- + -------- + | 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 rindas komplektā (0.00 sek.) 

    Statūtos jūs pamanīsiet, ka man ir daudz brīvas atmiņas. Ja jūsu serverim ir daudz zemu plūmju plūmju, iespējams, būs jāapsver šīs vērtības palielināšana, bet nevajadzētu tērēt pārāk daudz atmiņas tīmekļa servera vaicājumu kešatmiņā ... jums ir jāatstāj atmiņa, kas pieejama apache, php, ruby, vai ko jūs lietojat.

    Iespējot konfigurācijas failā

    Ja vēlaties, lai šīs izmaiņas izdzīvotu atkārtoti vai restartētu MySQL serveri, jums tās jāpievieno jūsu /etc/mysql/my.cnf konfigurācijas failam MySQL. Ņemiet vērā, ka tā var būt citā jūsu instalācijas vietā.

    Atveriet failu, izmantojot teksta redaktoru sudo vai root režīmā, un pēc tam pievienojiet šīs vērtības, ja tās jau nav failā. Ja tās ir, vienkārši atcelt tās.

    query_cache_size = 268435456 query_cache_type = 1 vaicājums_cache_limit = 1048576

    Vaicājuma kešatmiņa var ievērojami uzlabot tīmekļa lietojumprogrammas ātrumu, īpaši, ja jūsu lietojumprogramma pārsvarā lasa. Pārraudzīt statusu, izmantojot iepriekš minētās metodes, un redzēt, kā tas darbojas laika gaitā.