¿Cualquier error de configuración puede llevar a crear demasiadas tablas temporales por mysql..mysql tuner shows
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 tabla temporal anterior era "de las 23725 tablas temporales que el 38% se crearon en el disco", pero cambié max_heap y tmp_table a 200m desde 16m y bajó al 30%.
Configuración:
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
Otro sistema con configuración predeterminada muestra "de 23725 tablas temporales, 1% fueron creadas en disco" con la misma base de datos.
Intenté cambiar el valor predeterminado en la máquina con este problema y todavía muestra "De las 580 tablas temporales, el 16% se crearon en el disco".
Estoy usando Ubuntu 11.4 de 64 bits con 48 gb de ram. ¿Puede alguien sugerir una solución?
¿Cambiar el motor de db de "myisam" a "memoria" en las tablas usando "group by" arreglará esto? Como se explica aquí: http://www.mysqlperformanceblog.com/2007/08/16/how-much-overhead-is-caused-by-on-disk-temporary-tables/
tmp_table_size
omax_heap_table_size