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