任何配置错误都能导致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%
较早的临时表是“在23725个临时表中,有38%是在磁盘上创建的”,但我将max_heap和tmp_table从16m更改为200m,并将其降低到30%。
组态:
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
另一个具有默认配置的系统显示带有相同数据库的“ 23725个临时表,其中1%是在磁盘上创建的”。
我尝试将计算机上的默认设置更改为此问题,它仍然显示“在580个临时表中,有16%是在磁盘上创建的”。
我正在使用带有48 GB RAM的Ubuntu 11.4 64位。有人可以提出解决方案吗?
使用“ group by”将表上的数据库引擎从“ myisam”更改为“ memory”是否可以解决此问题?如此处所述:http : //www.mysqlperformanceblog.com/2007/08/16/how-much-overhead-is-caused-by-on-disk-temporary-tables/
tmp_table_size
max_heap_table_size