Kann ein Konfigurationsfehler dazu führen, dass von mysql..mysql tuner shows zu viele temporäre Tabellen erstellt werden?
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%
Früher war die temporäre Tabelle "von den 23725 temporären Tabellen wurden 38% auf der Festplatte erstellt", aber ich habe max_heap und tmp_table von 16m auf 200m geändert und sie auf 30% gesenkt.
Aufbau:
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
Ein anderes System mit Standardkonfiguration zeigt "23725 temporäre Tabellen, 1% wurden auf der Festplatte erstellt" mit derselben Datenbank.
Ich habe mit diesem Problem versucht, die Standardeinstellung auf dem Computer zu ändern, und es wird weiterhin "Von 580 temporären Tabellen wurden 16% auf der Festplatte erstellt" angezeigt.
Ich benutze Ubuntu 11.4 64 Bit mit 48 GB RAM. Kann jemand eine Lösung vorschlagen?
Wird die Änderung der Datenbank-Engine von "myisam" in "memory" für Tabellen mit "group by" dieses Problem beheben? Wie hier erklärt: http://www.mysqlperformanceblog.com/2007/08/16/how-much-overhead-is-caused-by-on-disk-temporary-tables/
tmp_table_size
odermax_heap_table_size
"using temporary" und "using filesort" sind nicht das Ende der Welt!
SELECT ... GROUP BY a, b ORDER BY c, d - Erfordert 1 oder 2 "temporäre Tabellen".
Es gibt einfach Zeiten, in denen Ihre Abfragen temporäre Tabellen verwenden. Temporäre Tabellen können eine Abfrage um einen kleinen Faktor verlangsamen. Aber wenn die Abfrage immer noch "schnell genug" ist, machen Sie sich darüber keine Sorgen.
Wenn die Abfrage zu langsam ist (mit oder ohne tmp-Tabellen), diskutieren wir sie. Bitte geben Sie SHOW CREATE TABLE, SHOW TABLE STATUS und EXPLAIN an.
quelle
(a, b, c, d)
, wird es keine temporäre Tabelle geben.