Dlaczego mój serwer MySQL konwertuje HEAP na MyISAM
Czasami mieliśmy problemy z naszym serwerem MySQL. Nadal wysyła wiele takich żądań w tym samym czasie (dodając je w ten sposób do mojej listy procesów). Używamy bazy danych MyISAM i puli połączeń za pośrednictwem Glassfish v3 dla aplikacji Grails.
db_user myhost: 35143 db Żądanie 39
converting HEAP to MyISAM/* mysql-connector-java-5.1.7 ( Revision: ) */SHOW VARIABLES WHERE Variable_name ='language' OR Variable_name = 'net_write_timeout' OR Variable_name = 'interactive_timeout' OR Variable_name = 'wait_timeout' OR Variable_name = 'character_set_client' OR Variable_name = 'character_set_connection' OR Variable_name = 'character_set' OR Variable_name = 'character_set_server' OR Variable_name = 'tx_isolation' OR Variable_name = 'transaction_isolation' OR Variable_name = 'character_set_results' OR Variable_name = 'timezone' OR Variable_name = 'time_zone' OR Variable_name = 'system_time_zone' OR Variable_name = 'lower_case_table_names' OR Variable_name = 'max_allowed_packet' OR Variable_name = 'net_buffer_length' OR Variable_name = 'sql_mode' OR Variable_name = 'query_cache_type' OR Variable_name = 'query_cache_size' OR Variable_name = 'init_connect'
Zakładamy, że używamy GORM (ORM Grails) do tworzenia tymczasowych tabel, które wywołują te zapytania.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
1 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Najbardziej oczywiste byłoby twoje
zmienna jest za mała i MySQL musi utworzyć tymczasową tabelę na dysku, a nie w pamięci. Poniższe zapytanie pokaże, czy MySQL tworzy tabele dyskowe tmp.
Innym problemem może być to, że tabela, która musi przejść do tabeli tymczasowej, to
lub
tabelę, której silnik pamięci nie obsługuje i dlatego otrzymasz tabelę MyISAM utworzoną na dysku.
Tabele tymczasowe utworzone na dysku to tabele MyISAM.
to jest stara nazwa
tabele, więc musisz mieć uruchomiony MySQL przed MySQL 5.x.