MySQL Query Cache

Note : Le gain de performance de l’activation du cache des requêtes est très dépendant de l’applicatif, il sera très efficace pour les requêtes en lecture identiques. Et cela sera d’autant plus vrai pour des tables MyISAM. L’effet sera contre productif sur des charges d’écriture importante.

Demande si le cache pour les requêtes est activé

SHOW VARIABLES LIKE 'have_query_cache';

Résultat

+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| have_query_cache | YES   |
+------------------+-------+

Paramétrage du query cache

SHOW GLOBAL VARIABLES LIKE 'query_cache%';

Résultat :

+------------------------------+----------+
| Variable_name                | Value    |
+------------------------------+----------+
| query_cache_limit            | 1048576  |
| query_cache_min_res_unit     | 4096     |
| query_cache_size             | 16777216 |
| query_cache_strip_comments   | OFF      |
| query_cache_type             | ON       |
| query_cache_wlock_invalidate | OFF      |
+------------------------------+----------+
6 rows in set (0.00 sec)

Désactivation du Qcache

SET GLOBAL query_cache_type=0; 
SET GLOBAL query_cache_size=0; 

Activation du Qcache

SET GLOBAL query_cache_type=1; 
SET GLOBAL query_cache_size = 16777216;

Statistiques du cache hit

SHOW STATUS LIKE "qcache%";

Résultat :

+-------------------------+--------+
| Variable_name           | Value  |
+-------------------------+--------+
| Qcache_free_blocks      | 0      |
| Qcache_free_memory      | 0      |
| Qcache_hits             | 130025 |
| Qcache_inserts          | 22837  |
| Qcache_lowmem_prunes    | 1915   |
| Qcache_not_cached       | 8382   |
| Qcache_queries_in_cache | 0      |
| Qcache_total_blocks     | 0      |
+-------------------------+--------+
8 rows in set (0.00 sec)

Paramétrage via my.cnf

Nécessite la relance de Mysql :

A VENIR