MySQL har en nyttig funktion ved navn " query cache " som forbedrer MySQL ydeevnen betydeligt, når aktiveret . Forespørgslen cache indeholder teksten til en SELECT-sætning sammen med efter resultat, der blev sendt til klienten. Når identiske udsagn modtages i fremtiden , serveren søger efter resultaterne fra forespørgslen cache i stedet for at udføre de erklæringer igen. Forespørgslen cache deles også mellem sessioner , og dermed en forespørgsel resultat genereret af en bruger kan anvendes af en anden bruger. Forespørgslen cache er gældende i sammenhænge, hvor dine tabeller ikke ofte skifter og serveren modtager mange identiske forespørgsler vedrørende tabellerne . Men forespørgslen cache har forskellige begrænsninger . Transparent Caching
Query cache er fuldstændig gennemsigtig for ansøgningen. Dette vil skabe problemer i nogle tilfælde . Når forespørgslen cache er aktiveret, kan du altid få forespørgsel resultater , selv når de tilhørende tabeller er låst , og bliver opdateret . Låsning tabeller betyder normalt tabellerne er utilgængelige , men forespørgsel resultater fra forespørgslen cache vil stadig komme til brugerne.
Caching Begrænsning
forespørgsel cache virker ikke for sub- udvælger, inline udsigt, eller forening . Forespørgslerne skal være nøjagtig den samme for at udnytte resultatet fra forespørgslen cache , hvilket betyder, at hvis du lægger dynamiske kommentarer i forespørgslen med flere mellemrum eller anden case , får du et andet resultat end forespørgslen cache . En anden begrænsning er kun vælge forespørgsler er cached. Undgå kommentarer eller mellemrum i starten af forespørgslen som forespørgslen cache kontrollerer kun det første bogstav i forespørgslen , og kun hvis det er " S" betyder det fortsætter med at gå videre caching forespørgsel resultater .
Tabel Level Granulering i ugyldiggørelse
p Hvis tabeller er ændret eller opdateret , er alle forespørgsler stammer fra bordene ugyldiggjort øjeblikkeligt. De fleste af de forespørgsler der ikke ændret, men MySQL kan ikke identificere ændrede dem , så det sletter alle af dem. Dette er den største årsag, som begrænser forespørgslen cache effektivitet. Især med høj write program som fora , forespørgsel cache effektivitet er meget lav på grund af denne begrænsning.
Fragmentering Over Time
Med tiden forespørgsel cache bliver fragmenteret og mindre effektiv . Den " FLUSH QUERY CACHE " kommando kan udnyttes til forespørgslen cache defragmentering , men det kan blokere forespørgslen cache af hensyn til en stor forespørgsel cache , hvilket er forkert for online-applikationer .
< Br >