• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql揭示 The table ‘tmpxmldata’ is full

mysql 搞代码 7年前 (2018-06-05) 129次浏览 已收录 0个评论

mysql提示 The table ‘tmpxmldata’ is full
开发环境:
mysql: 5.5.8
os: win2003 SP2
内存:8G

问题:

我在存储过程中使用临时表:ENGINE=MEMORY,执行动态sql语句,但很奇怪传入的sql语句才1M就提示
The table ‘tmpxmldata’ is full 
下面是我的参数设置:
"Variable_name" "Value"
"tmp_table_size" "805306368"
"max_heap_table_size" "536870912"

最好能够提供my.ini供我参考一下。

请问是什么原因?我该如何设置?谢谢!

——解决方案——————–
show create table tmpxmldata看看还是不是memory引擎的
——解决方案——————–
检查你的 max_heap_table_size 系统变量。
——解决方案——————–
你是怎么判断 传入的sql语句才1M
——解决方案——————–
楼主提供下插入的语句看看吧。

“另外我将这些sql语句保存为sql文件也就1M” 
这句话有误,我举个反例

insert into a (texts) select repeat(‘a’,10000000);

这个会写入1000W个A,写入数据库的大小和这条SQL语句文本的大小完全不同了。
——解决方案——————–
mysql> create table t(a varchar(8000)) engine=memory;
Query OK, 0 rows affected (0.14 sec)

mysql> show variables like ‘%heap%’;
+———————+———-+
| Variable_name | Value |
+———————+———-+
| max_heap_table_size | 16777216 |
+———————+———-+
1 row in set (0.00 sec)

mysql> insert into t select repreat(‘a’,8000);
ERROR 1305 (42000): FUNCTION db1.repreat does not exist
mysql> insert into t select repeat(‘a’,8000);
Query OK, 1 row affected (0.04 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
Query OK, 2 rows affected (0.03 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
Query OK, 8 rows affected (0.00 sec)
Records: 8 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
Query OK, 16 rows affected (0.00 sec)
Records: 16 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
Query OK, 32 rows affected (0.00 sec)
Records: 32 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
Query OK, 64 rows affected (0.00 sec)
Records: 64 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
Query OK, 128 rows affected (0.00 sec)
Records: 128 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
Query OK, 256 rows affected (0.01 sec)
Records: 256 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
Query OK, 512 rows affected (0.01 sec)
Records: 512 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
Query OK, 1024 rows affected (0.02 sec)
Records: 1024 Duplicates: 0 Warnings: 0

mysql> insert into t select * from t;
ERROR 1114 (HY000): The table ‘t’ is full
mysql> insert into t select * from t;
ERROR 1114 (HY000): The table ‘t’ is full
mysql> insert into t select * from t;
ERROR 1114 (HY000): The table ‘t’ is full
mysql> select count(*) from t;
+———-+
| count(*) |
+———-+
| 2064 |
+———-+
1 row in set (0.11 sec)

mysql> show table status like ‘t’;
+——+——–+———+————+——+—————-+————-+—————–+————–+———–+—————-+———-


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql揭示 The table ‘tmpxmldata’ is full

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址