2017-07-22 2 views
0

Ma compréhension est que query_alloc_block_size détermine la taille de bloc pour le cache de requête. Dans mon cas, c'est la valeur par défaut. 8Kquery_cache_size, Qcache_total_blocks et query_alloc_block_size

Lorsque je calcule query_cache_size/Qcache_total_blocks, j'obtiens des nombres compris entre 1 et 4K. Pourquoi changeraient-ils avec le temps? pourquoi seraient-ils différents de query_alloc_block_size?

La valeur par défaut de query_cache_min_res_unit est 4K. Pourquoi cela serait-il plus petit que query_alloc_block_size? N'aurait-il pas besoin d'être un multiple de query_alloc_block_size?

Évidemment, je suis malentendu quelque chose tout à fait fondamental

Répondre

1

Eh bien, je ne peux pas répondre à la question spécifique.

Mon avis sur le QC: Éteignez-le si vous faites même un nombre modeste d'écritures sur la table sur laquelle vous exécutez des requêtes.

D'autres mesures et conseils (si vous allumez-le):

  • Taille du QC - query_cache_size
    Recommander 8E6 à 100e6 MB. Si hors de portée, trop petit = pas très utile. Trop grand = trop de frais généraux. Recommander soit 0 ou pas plus de 50M.
  • Pct Query Cache libre - Qcache_free_memory/query_cache_size
    Recommandons 0 à 100%. Si hors de portée, inférieur query_cache_size L'abaisser libère de la RAM pour d'autres utilisations, mais puisque l'espace libre variera au fil du temps, cette lecture peut vous tromper.
  • Dépassement de la pièce au QC - Qcache_lowmem_prunes/Uptime
    Recommander 0 à 15/sec. Si hors limites, augmentez query_cache_size
  • SQL_CACHE essayé, mais ignoré - Qcache_not_cached/Uptime
    Recommandez 0 à 40/sec. Si hors de portée, Repensez la mise en cache; tune qcache
  • Pourcentage de SELECT qui n'étaient pas mis en cache dans le QC. - Qcache_not_cached/(Qcache_hits + Com_select + Qcache_not_cached)
    Recommander 0 à 30%. Si hors de portée, le QC n'est pas très utile.
  • dans Fragmentation du cache de requêtes - Qcache_free_blocks * 4096/query_cache_size
    Recommander 0 à 1. Si hors de portée, diminuer query_cache_min_res_unit
  • Hit à insérer rapport - haut est bon - Qcache_hits/Qcache_inserts
    Recommend (préférer des valeurs élevées) 1 - 10 En dehors de la plage, pensez à désactiver le cache de requête. Taux de réussite - SELECT qui ont utilisé QC - Qcache_hits/(Qcache_hits + Com_select)
    Recommandez (préférez des valeurs élevées) 25 - 100%. Si hors de portée, pensez à désactiver le cache de requête.
  • Taux de succès de la mémoire cache de la requête - Qcache_hits/(Qcache_hits + Qcache_inserts + Qcache_not_cached)
    Recommandez (préférez les valeurs élevées) 30 - 100%. Si hors de portée, Probablement le meilleur pour éteindre le QC.
  • Requêtes mises en cache au moment - Qcache_queries_in_cache
    Recommend (préfèrent des valeurs élevées) 500 - 100000.
  • dans Fragmentation du cache de requêtes. - Qcache_free_blocks/Qcache_total_blocks
    Recommander 0 à 30%.Si hors de portée, Diverses choses.
  • Invalidations/sec. - Qcache_inserts - Qcache_queries_in_cache/Uptime
    Recommander 0 à 100/sec.
  • query_alloc_block_size vs formule - (query_cache_size - Qcache_free_memory) /Qcache_queries_in_cache/query_alloc_block_size
    Recommander 0,5 à 2. Si hors de portée, Ajuster query_alloc_block_size
  • cache des sous-requêtes taux de succès - Subquery_cache_hit/(Subquery_cache_hit + Subquery_cache_miss)
    Recommend (préfèrent des valeurs élevées) 60 - 100%. Si hors de portée, Considérez SET optimizer_switch = 'subquery_cache = off';
0
  1. vrai
  2. Si query_cache_size a été défini soit GLOBAL ou SESSION ou query_alloc_block_size a été réglé soit GLOBAL ou SESSION, le résultat de query_cache_size/query_alloc_block_size = réponse pourrait être différente. Qcache_total_blocks est toujours le résultat de ce calcul, pour le moment.
  3. Pensez à query_cache_min_res_unit comme octets minimum requis pour stocker le résultat de votre requête. Vous pouvez stocker des milliers de résultats de comptage dans un query_alloc_block_size. Envisagez d'utiliser le minimum de 512 pour conserver la mémoire de contrôle de la qualité. Ce lien vous aidera. https://dev.mysql.com/doc/refman/5.7/en/query-cache-configuration.html