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

2022-11-12 09:21:54
内容摘要
这篇文章主要为大家详细介绍了MySQL Out of memory (Needed 16777224 bytes)的错误解决,具有一定的参考价值,可以用来参考一下。 对此感兴趣的朋友,看看idc笔记做的技术笔记!这
文章正文

这篇文章主要为大家详细介绍了MySQL Out of memory (Needed 16777224 bytes)的错误解决,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

这几天碰到这个错误。至于我改的这几个值是不是正确的解决方法,目前还不知道。先贴出来。如果过一段时间我还是没有更新,那以后同志们都参考吧 。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.htmlQcache_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.htmlIf 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)的错误解决的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!