Mysql lekérdezés optimalizálja cache - mysql - blog hasznos cikkeket a fejlesztése és támogatása oldalak

Mysql lekérdezés optimalizálja cache - mysql - blog hasznos cikkeket a fejlesztése és támogatása oldalak
Kérdés gyorsítótár gyorstárazza a lekérdezés eredményét. Ez azt jelenti, hogy a gyorsítótárban lekérdezés nem fut. Továbbá, caching teljesíti még elemezni a lekérdezés is. Ez azt jelenti, hogy a lekérdezés kell pontosan ugyanaz, mint a cache, amíg a byte.

Felelősek az cache rendszer változók kezdődő „query_cache_”

Először is, győződjön meg arról, hogy gyorsítótár engedélyezve van. Query_cache_type változót kell állítani ON (1) vagy a kereslet (2) és a query_cache_size lehet nulla.

Ha a „query_cache_type = ON” cache összes kérelem, kivéve azokat, amelyek csipetnyi SQL_NO_CACHE és néhány kivételtől eltekintve.
Ha a "query_cache_type = lekérhető csak a cache kéri kezdődő SELECT SQL_CACHE.

query_cache_min_res_unit minimális mérete a lefoglalt memória blokk tárolására cache lekérdezés eredményét. MySQL nem tárolja a cache memória egy nagy darab helyett lefoglalt blokkok igény minimális mérete query_cache_min_res_unit (= 4 KB alapértelmezett). Az utolsó ilyen blokk csíptetve a mérete az adatok, és a fennmaradó memória felszabadul.
És ha van egy csomó kis lekérdezéseket a cache, akkor vezethet memória töredezettség, mert a nagy számú szabad blokkok. Ez viszont azt eredményezi, eltávolítjuk a cache bejegyzés hiánya miatt a memória. Ebben az esetben van értelme, hogy csökkenti az értékét query_cache_min_res_unit. Ha a legtöbb lekérdezés termel nagy eredmény volt, ami ebben a paraméterben javíthatja a teljesítményt.

Annak ellenőrzésére lekérdezés gyorsítótárat használ

Kérdés gyorsítótár nem mindig használják, és nem minden típusú lekérdezések. Ha a lekérdezés eredmény meghaladja query_cache_limit (= 1MB alapértelmezés szerint), akkor nem tárolásra kerülnek. MySQL verzió 4.1.1 nem támogatja a lekérdezés cache tranzakciókat.

  • Lekérdezések ideiglenes táblák, vagy nem használják táblázatok;
  • Kérelem generáló figyelmeztetések (figyelmeztetések);
  • Request subqueries amelyek külső kérésre;
  • Lekérdezések belül tárolt eljárások és függvények;
  • Lekérdezések SQL_NO_CACHE
  • Készül lekérdezések (elkészített nyilatkozatok);
  • Lekérdezések használó funkciók:
    Értéket (a), CONNECTION_ID (), CONVERT_TZ (), CURDATE (), CURRENT_DATE (), CURRENT_TIME (), CURRENT_TIMESTAMP (), CURTIME (), DATABASE (), ENCRYPT () egy argumentum, FOUND_ROWS (), GET_LOCK () , LAST_INSERT_ID (), LOAD_FILE (), MASTER_POS_WAIT (), NOW (), RAND (), RELEASE_LOCK (), sleep (), SYSDATE (), UNIX_TIMESTAMP () paraméterek nélkül USER (), UUID ();
  • Lekérdezések segítségével a tárolt funkciók, felhasználói változó, vagy a linket egy táblázatot, a rendszer vagy bázisok mysql INFORMATION_SCHEMA;
  • Lekérdezések a következő formában:
    SELECT ... IN SHARE MODE
    SELECT ... FOR UPDATE
    SELECT ... INTO OUTFILE ...
    SELECT ... INTO DumpFile ...
    SELECT * FROM ... WHERE autoincrement_col IS NULL