我使用内存引擎创建了一个临时表,代码如下:
CREATE TEMPORARY TABLE IF NOT EXISTS some_text (
id INT DEFAULT 0,
string varchar(400) DEFAULT ''
) engine = memory;
当我向其中插入行时,我遇到了#1114错误,因为表已满。 mysql文档解释说更改
tmp_table_size
和max_heap_table_size
对于增加用户创建的临时表的大小没有任何作用,这就是我认为我在这里所遇到的情况。如何才能使这个表变得更大?我希望能够通过调用SET动态地完成这个操作,但我已经尝试过设置
tmp_table_size
和max_heap_table_size
,它们都远远超出了我预期在这个表中要存储的数据量。那么,有人知道如何解决这个表上的错误吗?感谢所有提供帮助的人。
max_heap_table_size
。在我的存储过程中仅使用set max_heap_table_size = 33554432
来设置限制,然后在其完成运行后可能会将其设置回去,这样做是否明智?再次感谢。 - usumoiomax_heap_table_size
可以在会话范围内设置(参见 http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_max_heap_table_size),因此您可以在有限的影响下进行更改。 - Bill Karwinmax_heap_table_size
和tmp_table_size
增加到 4G,但仍然收到“full”消息! - Buttle Butkus