mysql out of memory_mysql Out of memory (Needed 16777224 bytes)的错误解决

至于我改的这几个值是不是正确的解决方法,目前还不知道。先贴出来

这几天碰到这个错误。

至于我改的这几个值是不是正确的解决方法,目前还不知道。先贴出来。

如果过一段时间我还是没有更新,那以后同志们都参考吧 。

Out of memory (Needed 16777224 bytes)的错误解决

看看手册:

[url]http://dev.mysql.com/doc/refman/5.1/en/memory-storage-engine.html[/url]

开始我更改了query_cache_size的值。

好像也不行。

之后

增大query_cache_limit 的值。

还有max_heap_table_size

和tmp_table_size的值。

因为我们的存储过程中用了好多的预处理语句。而且语句的结果都是非常大的。

起初我的结果:

mysql> show variables like 'max_heap_table_size';

+---------------------------------+----------------------+

| Variable_name | Value |

+---------------------------------+----------------------+

| max_heap_table_size | 16777216 |

+---------------------------------+----------------------+

mysql> show variables like 'tmp_table_size';

+---------------------------------+----------------------+

| Variable_name | Value |

+---------------------------------+----------------------+

| tmp_table_size | 16777216 |

+---------------------------------+----------------------+

我改了my.cnf文件

mysql> show variables like 'max_heap_table_size';

+---------------------------------+----------------------+

| Variable_name | Value |

+---------------------------------+----------------------+

| max_heap_table_size | 67108864 |

+---------------------------------+----------------------+

mysql> show variables like 'tmp_table_size';

+---------------------------------+----------------------+

| Variable_name | Value |

+---------------------------------+----------------------+

| tmp_table_size | 67108864 |

+---------------------------------+----------------------+

顺便看一下这篇文章中的一段话:

http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html

Qcache_hits and Qcache_inserts shows the number of times a query was serviced from the cache and how many queries have been inserted into the cache. Low ratios of hits to inserts indicate little query reuse or a too-low setting of the query_cache_limit, which serves to govern the RAM devoted to each individual query cache entry. Large query result sets will require larger settings of this variable.

补充:

今天在手册上看到这段话

http://dev.mysql.com/doc/refman/5.1/en/out-of-memory.html

If you issue a query using the mysql client program and receive an error like the following one, it means that mysql does not have enough memory to store the entire query result:

所以我把我的所有存储过程都修改了。

因为里面的预处理语句没有清零。

经过测试。

比如:

里面用到

PREPARE S1 FROM @STMT;

...

一定要

SET @STMT = '';

不知道这个是不是根本原因。我会再次更新的。

再次证明这样做会减少这种情况。不过下午把所有存储过程修改了。

凡是普通连接的都改为LEFT JOIN 了。通过EXPLAIN建立了相关索引。

而且把版本换成了5.0.45。至于是否还是出现错误。还在继续关注中。。。目前没有任何错误。

这个问题貌似MYSQL官方解决了。

http://bugs.mysql.com/bug.php?id=31898

本文标题: mysql Out of memory (Needed 16777224 bytes)的错误解决

本文地址: http://www.cppcns.com/shujuku/mysql/88557.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值