ความผิดพลาดในการตั้งค่าใด ๆ อาจนำไปสู่การสร้างตารางชั่วคราวมากเกินไปโดย mysql..mysql tuner แสดง
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%
ตาราง temp ก่อนหน้านี้คือ "ของ 23725 temp tables 38% ถูกสร้างขึ้นบนดิสก์" แต่ฉันเปลี่ยน max_heap และ tmp_table เป็น 200m จาก 16m และลดลงเป็น 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 temp tables, 1% ถูกสร้างขึ้นบนดิสก์" ด้วยฐานข้อมูลเดียวกัน
ฉันพยายามเปลี่ยนเป็นค่าเริ่มต้นบนเครื่องที่มีปัญหานี้และยังคงแสดง "ของ 580 temp tables, 16% ถูกสร้างบนดิสก์"
ฉันใช้ Ubuntu 11.4 64 บิตกับ 48 gb ram มีใครแนะนำวิธีแก้ปัญหาได้หรือไม่?
การเปลี่ยนเอ็นจิน db จาก "myisam" เป็น "memory" บนตารางโดยใช้ "group by" จะแก้ไขปัญหานี้หรือไม่? ตามที่อธิบายไว้ที่นี่: http://www.mysqlperformanceblog.com/2007/08/16/how-much-overhead-is-caused-by-on-disk-temporary-tables/
tmp_table_size
หรือmax_heap_table_size