Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Cache PHP MySQL Query výsledky

Počnúc MySQL verzie štyri , to už nie je nutné písať vlastný PHP kód do cache MySQL výsledky dotazu . MySQL obsahuje vstavaný dotazu cache , ktorá bude medzipamäte výsledky za rovnakých " Vybrať " uzávierky , vrátane pripravených príkazov . Ak chcete použiť cache , upraviť konfiguračný súbor a zapnite ju . Po zapnutí , ale budete mať možnosť prepísať , či dotaz medzipamäte odovzdaním kľúčové slovo v dotaze môžete odoslať z PHP k MySQL . Skontrolujte obmedzenia cache otázok , aby sa ubezpečil , aby ste pochopili , ako funguje medzipamäť pred napísať PHP skript dotazu cache v pamäti . MySQL dotazu Cache

MySQL medzipamäte dotaz zachytáva výraz dotazu z " SELECT " otázku a kompletnú sadu výsledkov a umiestni ich do dočasnej pamäte cache na disku alebo v pamäti . Keď sa PHP skript vydá rovnaký dotaz na ten , ktorý bol predtým spustený a vyrovnávacej pamäte , výsledky sú podávané z vyrovnávacej pamäte , nie v databáze . To môže výrazne znížiť množstvo času potrebného na získanie výsledkov , ktoré zlepšuje výkonnosť programu PHP .
Obmedzenie

MySQL vyrovnávacej pamäti pracuje iba s " ; SELECT " otázky a bude iba vyrovnávaciu pamäť plná otázok , nie vnorené dotazy alebo zobrazenie inline . Cache dotaz medzipamäte pripravené vyhlásenie , ale bude do medzipamäte databázových transakcií . Nezahŕňajú komentáre na začiatku otázok vo vyhlásení PHP . Je-li podmienka dotaz nezačína písmenom " S " , MySQL bude určovať to nie je otázka " SELECT " a nebude medzipamäte výsledky . Napríklad :

//Nerob to $ dotaz = ' /* $ name je aktuálny člen * /SELECT * FROM členmi WHERE name = $ name ' ;//To namiesto $ dotaz = " SELECT * FROM členmi WHERE name = $ name /* $ name je aktuálny člen * /' , $ result = mysql_query ( $ query ) ;
dotazu Cache Setup

Ak chcete nakonfigurovať MySQL cache otázok , upravte konfiguračný súbor MySQL na webovom serveri , napríklad " /etc /mysql /my.cnf " na webovom serveri Apache , a nastavte " query_cache_type " a " otázku - cache -size " premenné . Pre " query_cache_type , " Nulová hodnota vypne cache , jeden zapne vyrovnávacej pamäte , " . On demand " a dva súbory vyrovnávacej pamäte bude Vyberte maximálnu veľkosť vyrovnávacej pamäti , zvyčajne medzi 20 a 100 megabajtov , a pridajte nasledujúce riadky na koniec konfiguračného súboru sa obrátiť cache dotazu a nastaviť veľkosť 20 MB :

otázku - cache - type = 1query - cache - size = 20M

Caching " On Demand "

Ak chcete určiť , ktoré výsledky dotazu sú uložené vo vyrovnávacej pamäti z PHP skriptu , nastavte " query - cache -typ " na " 2 " a odovzdať kľúčové slovo " SQL_CACHE " po " SELECT " vyhlásenie v dotaze PHP . Napríklad :

$ query = " SELECT * FROM SQL_CACHE zákazníkmi WHERE cust_id = " 0089324 " ; $ result = mysql_query ( $ query ) ;

Ak medzipamäte dotazu je zapnutý a nechcete do medzipamäte konkrétny dotaz , odovzdať kľúčové slovo " SQL_NO_CACHE " z PHP . Napríklad :

$ query = " SELECT * FROM SQL_NO_CACHE zákazníkmi WHERE cust_id = " 0089324 " ; $ result = mysql_query ( $ query ) ;

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené