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

 更新时间:2012年07月25日 00:46:41   作者:  
至于我改的这几个值是不是正确的解决方法,目前还不知道。先贴出来
这几天碰到这个错误。
至于我改的这几个值是不是正确的解决方法,目前还不知道。先贴出来。
如果过一段时间我还是没有更新,那以后同志们都参考吧 。
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

相关文章

  • CentOS7.4 源码安装MySQL8.0的教程详解

    CentOS7.4 源码安装MySQL8.0的教程详解

    这篇文章主要介绍了CentOS7.4 源码安装MySQL8.0的教程详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-04-04
  • MySQL 8忘记密码的最佳处理方式浅析

    MySQL 8忘记密码的最佳处理方式浅析

    这篇文章主要给大家介绍了关于MySQL 8忘记密码的处理方式,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • 在SQL中修改数据的基础语句

    在SQL中修改数据的基础语句

    修改数据SQL中,可以使用UPDATE语句来修改、更新一个或多个表的数据,下面这篇文章主要给大家介绍了关于在SQL中修改数据的基础语句,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • MYSQL表优化方法小结 讲的挺全面

    MYSQL表优化方法小结 讲的挺全面

    一篇MYSQL表优化的文章,说的很好,使用mysql的朋友可以参考下。
    2010-05-05
  • MySQL索引与事务定义到使用详解

    MySQL索引与事务定义到使用详解

    这篇文章主要介绍了MySQL数据库索引事务,索引是为了加速对表中数据行的检索而创建的一种分散的存储结;事物是属于计算机中一个很广泛的概念,一般是指要做的或所做的事情,下面我们就一起进入文章了解具体内容吧
    2022-12-12
  • Mysql 自定义随机字符串的实现方法

    Mysql 自定义随机字符串的实现方法

    前段时间接了一个项目,需要用到随机字符串,但是mysql的库函数没有直接提供,需要我们自己实现此功能,下面小编给大家介绍下Mysql 自定义随机字符串的实现方法,需要的朋友参考下吧
    2016-08-08
  • MySQL安装三种方法总结(yum安装、编译安装、二进制安装)

    MySQL安装三种方法总结(yum安装、编译安装、二进制安装)

    MySQL安装网上的教程有很多,基本上大同小异,但是安装软件有时就可能因为一个细节安装失败,这篇文章主要介绍了MySQL安装三种方法的相关资料,三种方法分别是yum安装、编译安装以及二进制安装,需要的朋友可以参考下
    2023-12-12
  • MySQL之死锁问题及其解决方案

    MySQL之死锁问题及其解决方案

    数据库死锁问题是我们老生常谈的问题了,在我们实际开发过程中经常会遇到,本文主要介绍了MySQL之死锁问题及其解决方案,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Mysql索引创建删除及使用代价

    Mysql索引创建删除及使用代价

    这篇文章主要为大家介绍了Mysql索引创建删除及使用代价详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • CentOS 7 下使用yum安装MySQL5.7.20 最简单方法

    CentOS 7 下使用yum安装MySQL5.7.20 最简单方法

    这篇文章主要介绍了CentOS 7 下使用yum安装MySQL5.7.20 最简单 方法,需要的朋友可以参考下
    2018-11-11

最新评论