Paātrināt jūsu vietni ar MySQL Query Caching

Paātrināt jūsu vietni ar MySQL Query Caching
Paātrināt jūsu vietni ar MySQL Query Caching

Video: Paātrināt jūsu vietni ar MySQL Query Caching

Video: Paātrināt jūsu vietni ar MySQL Query Caching
Video: Preventing Dropdown Menus from closing when Inspecting using Chrome Devtools - YouTube 2024, Aprīlis
Anonim

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> show variables like 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+

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

Šeit ir svarīgākie saraksta elementi un to nozīme.

  • query_cache_size - Tas ir kešatmiņas izmērs baitos. Nosakot šo vērtību 0, efektīvi atspējos kešdarbi.
  • query_cache_type - Šī vērtība ir ON vai 1 vaicājuma kešatmiņā, kas pēc noklusējuma ir iespējota.
  • query_cache_limit - Šis ir vaicājuma maksimālais lielums (baitos), kas tiks kešatmiņā.

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 GLOBAL

query_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 | 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)

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ā.

Ieteicams: