query_cache_size параметр в Mysql

Эта настрой­ка опре­де­ля­ет коли­че­ство памя­ти, кото­рое Mysql выде­лит на кеш запро­сов. Кеш рабо­та­ет таким образом:

  • Mysql полу­ча­ет запрос и про­ве­ря­ет нали­чие его резуль­та­та в кеше. Если дан­ные есть, воз­вра­ща­ет ответ.
  • Если дан­ных нет, запрос выпол­ня­ет­ся и сохра­ня­ет­ся в кеш.
  • Если таб­ли­ца изме­ня­ет­ся (любая из опе­ра­ций INSERT / UPDATE / DELETEвесь кеш таб­ли­цы чистит­ся.

Это зна­чит, что:

  • Эту настрой­ку луч­ше исполь­зо­вать толь­ко тогда, когда име­ет место боль­шое коли­че­ство чте­ний и неболь­шое коли­че­ство запи­сей (100 чте­ний на 1 запись).
  • Отклю­че­ние этой настрой­ки и исполь­зо­ва­ние индек­сов для полу­че­ния высо­кой про­из­во­ди­тель­но­сти более при­ем­ле­мый вариант.

Если же вы реши­те исполь­зо­вать, сра­зу опре­де­ляй­те оба пара­мет­ра (уста­нав­ли­ва­ет­ся в my.cnf):

# Уста­нов­ка раз­ме­ра кеша запро­сов и огра­ни­че­ния кеша на один запрос

Не исполь­зуй­те зна­че­ния более 100…200Мб, т.к. с уве­ли­че­ни­ем это­го зна­че­ния, про­из­во­ди­тель­ность Mysql деградирует.

Для про­вер­ки состо­я­ние вклю­че­ния это­го пара­мет­ра, исполь­зуй­те запрос:

# Кеш включен

Для мони­то­рин­га:

# Зна­че­ние Qcache_hits долж­но быть очень большим

Для очист­ки кеша: