Une erreur de configuration peut-elle conduire à créer trop de tables temporaires par les shows du tuner mysql..mysql
Current max_heap_table_size = 200 M
Current tmp_table_size = 200 M
Of 17158 temp tables, 30% were created on disk
table_open_cache = 125 tables
table_definition_cache = 256 tables
You have a total of 97 tables
You have 125 open tables.
Current table_cache hit rate is 3%
La table temporaire précédente était "sur les 23725 tables temporaires, 38% ont été créées sur le disque", mais j'ai changé max_heap et tmp_table à 200 m au lieu de 16 m et il a baissé à 30%.
Configuration:
engine myisam
group_concat_max_len = 32768
key_buffer_size = 3.7 GB,
thread_stack = 256k,
table_cache = 125
query_cache_limit = 1M
query_cache_size = 16M
join_buffer_size = 2.00 M
max_connections = 800
Un autre système avec une configuration par défaut affiche "sur 23725 tables temporaires, 1% ont été créées sur le disque" avec la même base de données.
J'ai essayé de changer par défaut sur la machine avec ce problème et il affiche toujours "Sur 580 tables temporaires, 16% ont été créées sur le disque".
J'utilise Ubuntu 11.4 64 bits avec 48 Go de RAM. Quelqu'un peut-il proposer une solution?
Est-ce que changer le moteur de base de données de "myisam" en "mémoire" sur les tables utilisant "group by" corrigera ce problème? Comme expliqué ici: http://www.mysqlperformanceblog.com/2007/08/16/how-much-overhead-is-caused-by-on-disk-temporary-tables/
tmp_table_size
oumax_heap_table_size
"utiliser temporaire" et "utiliser filesort" ne sont pas la fin du monde!
SELECT ... GROUP BY a, b ORDER BY c, d - Nécessite 1 ou 2 "tables temporaires".
Il y a des moments où vos requêtes utilisent des tables temporaires. Les tables temporaires peuvent ralentir une requête d'un petit facteur. Mais si la requête est toujours "assez rapide", ne vous en faites pas.
Si la requête est trop lente (avec ou sans tables tmp), discutons-en. Veuillez fournir SHOW CREATE TABLE, SHOW TABLE STATUS et EXPLAIN.
la source
(a, b, c, d)
, il n'y aura pas de table temporaire.