Dapatkah kesalahan konfigurasi menyebabkan terlalu banyak membuat tabel temp oleh mysql..mysql menunjukkan 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%
Tabel temp sebelumnya adalah "dari 23725 tabel temp 38% dibuat pada disk" tetapi saya mengubah max_heap dan tmp_table menjadi 200m dari 16m dan diturunkan menjadi 30% ..
Konfigurasi:
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
Sistem lain dengan konfigurasi default menunjukkan "dari 23725 tabel temp, 1% dibuat pada disk" dengan database yang sama.
Saya mencoba mengubah ke default pada mesin dengan masalah ini dan masih menunjukkan "Dari 580 tabel temp, 16% dibuat pada disk".
Saya menggunakan Ubuntu 11,4 64 bit dengan 48 gb ram. Adakah yang bisa menyarankan solusi?
Akankah mengubah mesin db dari "myisam" menjadi "memory" pada tabel menggunakan "group by" memperbaikinya? Sebagaimana dijelaskan di sini: http://www.mysqlperformanceblog.com/2007/08/16/how-much-overhead-is-caus-by-on-disk-turnal-tables/
tmp_table_size
ataumax_heap_table_size
"menggunakan sementara" dan "menggunakan filesort" bukan akhir dari dunia!
PILIH ... GROUP BY a, b ORDER BY c, d - Membutuhkan 1 atau 2 "temp tables".
Ada beberapa saat ketika pertanyaan Anda akan menggunakan tabel temp. Tabel temp dapat memperlambat kueri dengan faktor kecil. Tetapi jika kueri masih "cukup cepat" maka jangan khawatir.
Jika kueri terlalu lambat (dengan atau tanpa tabel tmp), mari kita bahas. Berikan SHOW CREATE TABLE, SHOW TABLE STATUS, dan EXPLAIN.
sumber
(a, b, c, d)
, tidak akan ada tabel temp.