MySQL heeft een handige functie genaamd " query- cache " die MySQL prestaties verbetert aanzienlijk wanneer ingeschakeld . De query cache bevat de tekst van een SELECT-instructie samen met de volgens resultaat dat werd verzonden naar de klant . Wanneer de identieke instructies worden ontvangen in de toekomst , zoekt de server voor de resultaten van de query cache in plaats van uitvoeren van de opdrachten weer . De query cache wordt gedeeld tussen sessies dus een queryresultaat die door een gebruiker kan worden gebruikt door een andere gebruiker . De query cache is in contexten waar je tafels niet vaak veranderen en de server ontvangt talrijke identieke vragen over de tafels van toepassing . Echter , query cache heeft verschillende beperkingen . Transparant Caching query cache is volledig transparant voor de applicatie . Dit zal problemen veroorzaken in sommige omstandigheden . Als query- cache is ingeschakeld , kunt u altijd query resultaten , zelfs wanneer de gerelateerde tabellen zijn vergrendeld en worden bijgewerkt . Vergrendelen tafels meestal betekent dat de tafels zijn niet toegankelijk , maar query resultaten van query- cache zal nog steeds naar gebruikers . Caching Beperking De query cache werkt niet voor sub - selecteert , uitzicht inline , of UNION . De query moet exact hetzelfde zijn om het resultaat van de query- cache , wat betekent dat als je dynamische reacties in de query met meer spaties of andere zaak , een ander resultaat van query- cache krijg je benutten. Een andere beperking is slechts SELECT- query's worden gecached . Vermijd commentaar of spaties in het begin van de query als query- cache controleert alleen de eerste letter van de query en alleen als het " S " betekent het blijven gaan caching query resultaten . tafel Level Granularity in Onbegrip Als tabellen worden gewijzigd of bijgewerkt , alle vragen zijn afgeleid van de tafels worden direct ontkracht . Het grootste deel van de vragen zijn niet veranderd , maar MySQL kan niet het verwijdert alle van hen te identificeren veranderde degenen , dus . Dit is de belangrijkste reden die query- cache efficiëntie bedwingt . Vooral bij hoge schrijfsnelheid toepassing zoals forums , query cache rendement is zeer laag als gevolg van deze beperking . Fragmentatie Over Time Met de tijd , query cache gefragmenteerd en minder efficiënt . De " FLUSH QUERY CACHE " commando kan worden gebruikt voor de zoekopdracht cache defragmentatie maar het kan query- cache blokkeren omwille van een grote vraag cache , dat is onjuist voor online toepassingen . < Br > |