Viens no labākajiem veidiem, kā paātrināt tīmekļa lietojumprogrammu, ir, lai datubāzē iespējotu vaicājuma kešatmiņu, kas kešo bieži lietotos SQL vaicājumus atmiņā, lai to varētu uzreiz piekļūt nākamajā lapā, kurā tiek veikts viens un tas pats pieprasījums.
Iemesls, ka šī metode ir tik spēcīga, ka jums nav jāmaina sava tīmekļa lietojumprogramma, jums vienkārši ir jācenšas mazliet atmiņā upurēt. Tas netiks novērst visas jūsu problēmas, taču tas noteikti nesāpēs.
Piezīme: ja jūsu lietojumprogramma bieži atjaunina tabulas, vaicājuma kešatmiņa tiek pastāvīgi iztīrīta, un jūs to nesaņemsiet vai saņemsiet par labu. Tas ir ideāli piemērots lietojumprogrammai, kas galvenokārt skan pret datubāzi, piemēram, WordPress emuāru. Tas arī nedarbosies, ja jūs izmantojat virtuālo hostingu.
Iespējot kešdarbi ar servera darbību
Pirmā lieta, ko vēlaties darīt, ir pārliecināties, ka MySQL instalēšana patiešām ir pieejama vaicājuma kešdarbi. Lielākā daļa sadales dara, bet jums vispirms ir jāpārbauda.
Jūs vēlaties palaist šo komandu no sava MySQL konsoles, kas jums pateiks, vai vaicājuma kešatmiņa ir pieejama.
mysql> rādīt tādus mainīgos kā 'have_query_cache'; + ------------------ + ------- + | Variable_name | Vērtība | + ------------------ + ------- + | have_query_cache | JĀ | + ------------------ + ------- +
Neuzskatu, ka vaicājuma kešatmiņa ir faktiski iespējota, jo lielākā daļa hostinga pakalpojumu sniedzēju to nedarīt pēc noklusējuma. Dīvaini, mana Ubuntu Feisty instalācija jau bija iespējota ...
Tālāk mums būs 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ī vienlaikus, pārbaudot mainīgo vaicājumu%
mysql> rādīt tādus mainīgos kā 'query%'; + ------------------------------ + --------- + | Variable_name | 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 | Izslēgts | | vaicājums_prealloc_size | 8192 |. | + ------------------------------ + --------- +
Šeit ir svarīgākie saraksta elementi un to nozīme.
Ja vērtība query_cache_size ir iestatīta uz 0 vai jūs vienkārši vēlaties to mainīt, jums jāievada šī komanda, paturot prātā, ka vērtība ir baitos. Piemēram, ja jūs vēlaties piešķirt 8MB kešatmiņai, mēs izmantosim vērtību 1024 * 1024 * 8 = 8388608.
SET GLOBAL query_cache_size = 8388608;
Līdzīgi, citas opcijas var iestatīt ar tādu pašu sintaksi:
SET GLOBAL query_cache_limit = 1048576;SET GLOBALquery_cache_type
= 1;
Tagad, kā mēs zinām, vai tas faktiski strādā? Jūs varat izmantot komandu SHOW STATUS, lai izvilktu visus mainīgos, kas sākas ar "Qc", lai apskatītu to, kas notiek zem kapuces.
mysql> SHOW STATUS LIKE "Qc%"; + ------------------------- + -------- + | Variable_name | Vērtība | + ------------------------- + -------- + | Qcache_free_blocks | 65 |. | | Qcache_free_memory | 201440 | | Qcache_hits | 18868 | | Qcache_inserts | 2940 |. | | Qcache_lowmem_brunes | 665 |. | | Qcache_not_cached | 246 |. | | Qcache_queries_in_cache | 492 |. | | Qcache_total_blocks | 1430 | + ------------------------- + -------- + 8 rindas komplektā (0,00 sek.)
Jūs redzēsiet statistiku, ka man ir daudz brīvas atmiņas. Ja jūsu serverī tiek rādītas daudzas mazmēslas žāvētas plūmes, jums, iespējams, vajadzēs apsvērt iespēju palielināt šo vērtību, bet nevēlos tērēt pārāk daudz atmiņas par vaicājumu kešdarbi tīmekļa serverim ... jums jāatstāj atmiņa pieejamai apache, php, ruby vai ko jūs izmantojat.
Iespējot konfigurācijas failā
Ja vēlaties, lai šīs izmaiņas izdzīvotu, atsāknējot vai restartējot mysql serveri, jums jāpievieno tie MySQL konfigurācijas failā /etc/mysql/my.cnf. Ņemiet vērā, ka jūsu instalācija var būt citā atrašanās vietā.
Atveriet failu, izmantojot sudo vai saknes režīmu, izmantojot teksta redaktoru, un pēc tam pievienojiet šīs vērtības, ja failā tās vēl nav. Ja tie pastāv, vienkārši izmainiet tos.
query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576
Caching vaicājums var būtiski uzlabot jūsu tīmekļa lietojumprogrammas ātrumu, jo īpaši, ja jūsu pieteikums galvenokārt skan. Uzraugiet statusu, izmantojot iepriekš minētās metodes, un skatiet, kā tas darbojas laika gaitā.