sql >> Database teknologi >  >> RDS >> Mysql

Skal jeg ofre min innodb_buufer_pool _size/RAM for at gøre plads til query_cache_size?

Tilbage i juni 2014 svarede jeg https://dba.stackexchange.com/questions/66774/why-query-cache-type-is-disabled-by-default-start-from-mysql-5 -6/66796#66796

I det indlæg diskuterede jeg, hvordan InnoDB mikrostyrer ændringer mellem InnoDB Buffer Pool og Query Cache.

BRUGER IKKE FORESPØRGSCACHEN

Det enkleste svar ville være bare at deaktivere forespørgselscachen, men der er en catch:Du skal indstille både query_cache_size og query_cache_type til nul(0).

Hvis du ikke indstiller query_cache_type til nul(0), forekommer mikrostyringen af ​​ændringer stadig. Dette bekræftes af afsnit 8 i MySQL Dokumentation "Query Cache Configuration" siger

BRUG AF FORESPØRGSCACHEN

Hvis du virkelig ønsker at bruge Query Cache, skal du studere dine data. Dybest set skal du kende størrelsen på dine resultater. Du ville derefter indstille query_cache_limit og query_cache_min_res_unit for at imødekomme det gennemsnitlige resultatsæt såvel som det maksimale resultatsæt.

Som et alternativ kan du aktivere Query Cache globalt, men deaktivere dens brug fra din DB-session som angivet i Afsnit 9 :

DITT FAKTISKE SPØRGSMÅL

Query Cache, InnoDB Buffer Pool, Per Connection Threads (Se mit indlæg https://dba.stackexchange.com/questions/16969/how-costly-is-opening-and-closing-of-a-db-connection/ 16973#16973 ), og OS konkurrerer alle om RAM.

Når du kun ser på Query Cache og InnoDB Buffer Pool, skal du se, hvor meget plads der er ledig i InnoDB Buffer Pool, efter at MySQL har kørt i dage eller uger.

Du kan køre denne forespørgsel

SELECT variable_value / 64 free_mb
FROM information_schema.global_status
WHERE variable_name='Innodb_buffer_pool_pages_free';

Dette vil fortælle dig, hvor meget du kan sænke InnoDB Buffer Pool. Du kan derefter øge forespørgselscachen med den størrelse. Hvis denne forespørgsel returnerer mindre end 1024, er det sandsynligvis ikke besværet værd. Du vil enten få den ekstra plads fra RAM eller bare gå med at deaktivere Query Cache.



  1. Entity Framework med mysql, Table Capitalization-problem mellem linux og windows

  2. Forbindelsesproblemer med SQLAlchemy og flere processer

  3. Hvad er nyt i MariaDB MaxScale 2.4

  4. Postgresql rekursiv selv joinforbindelse