構成の間違いにより、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%がディスク上に作成されました」と表示されます。
私はUbuntu 11.4 64ビットと48 GB RAMを使用しています。誰でも解決策を提案できますか?
「group by」を使用してテーブルのdbエンジンを「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