Qualunque errore di configurazione può portare alla creazione di troppe tabelle temporanee con i programmi di sintonizzazione 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 precedente tabella temporanea era "delle 23725 tabelle temporanee 38% sono state create su disco" ma ho cambiato max_heap e tmp_table a 200m da 16m e si è ridotto al 30% ..
Configurazione:
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 altro sistema con configurazione predefinita mostra "di 23725 tabelle temporanee, l'1% sono state create su disco" con lo stesso database.
Ho provato a cambiare l'impostazione predefinita sulla macchina con questo problema e mostra ancora "Delle 580 tabelle temporanee, il 16% è stato creato su disco".
Sto usando Ubuntu 11.4 a 64 bit con ram da 48 GB. Qualcuno può suggerire una soluzione?
Cambiando il motore db da "myisam" a "memoria" sui tavoli usando "raggruppa per" risolverai questo problema? Come spiegato qui: http://www.mysqlperformanceblog.com/2007/08/16/how-much-overhead-is-caused-by-on-disk-temporary-tables/
tmp_table_size
omax_heap_table_size