比较来自世界各地的卖家的域名和 IT 服务价格

为什么我的服务器。 MySQL 继续转换 HEAP 在 MyISAM

我们定期与服务器出现问题 MySQL. 他继续同时发布许多这些请求 (因此,将它们折叠在我的流程列表中). 我们使用数据库 MyISAM 和池连接通过 Glassfish v3 适用于应用程序 Grails.

db_user myhost: 35143 db 询问 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'

我们假设 GORM (ORM grails) 创建临时表,从而导致这些请求。
已邀请:

卫东

赞同来自:

可能是几件事。

最明显的是你的

TMP_TABLE_SIZE

变量太小,而且 MySQL 必须在磁盘上创建一个临时表,而不是在内存中。 下一个请求将显示,如何创建 MySQL 盘表 tmp.

mysql> SHOW STATUS LIKE '%tmp%';

另一个问题可能是应该转到临时表的表格,

BINARY

或者

TEXT

内存机制不支持的表格,因此您得到了一张桌子 MyISAM, 在磁盘上创建。

在磁盘上创建的临时表是表格 MyISAM.

HEAP

这是一个旧的名字

MEMORY

表,所以你必须在版本中工作 MySQL 到 MySQL 5.x.

要回复问题请先登录注册