本文目录一览:
- mysql内存溢出怎么处理
- (2008) MySQL client ran out of memory怎么解决
- 数据库出错
- Java前提下, MySQL数据库,一次性存储大量数据导致内存溢出
- mysql数据库out of memory 内存溢出
- php 执行mysql中查询时内存溢出怎么办
mysql内存溢出怎么处理
使用 unbuffered cursor 可以避免内存问题。 cursor 默认使用 buffered 模式。这种模式会把所有结果集返回并载入内存。如果结果集很大的话,内存会爆。 unbuffered cursor 是每次只将下一行结果返回,内存占用很小。不过这种模式缺点很多,所以没有作为默认的模式。
(2008) MySQL client ran out of memory怎么解决
out of memory
错误信息如下:
mysql: out of memory at line 42, 'malloc.c'
mysql: needed 8136 byte (8k), memory in use: 12481367 bytes (12189k)
error 2008: mysql client ran out of memory
注意,错误指向了 MySQL 客户端。这个错误的原因很简单,客户端没有足够的内存存储全部结果。
解决方法:
用上服务器先备份,后下载下来。
数据库出错
可能原因:
- 内存不足
- 操作系统不支持 bug
MySQL 的错误信息:无法连接到 MySQL 服务器 SQL: 错误:不能创建一个新线程(errno 12);如果你不出来的可用内存,你可以咨询 errno 的错误手册,为可能操作系统的依赖。 数据库服务器问题,数据库操作无法创建新线程。一般有以下 3 个方面的原因: - MySQL 线程开得太多
- 服务器系统内存溢出
- 环境软件损坏或系统损坏
独立主机用户解决方案: - 进入 phpMyAdmin 的 mysql 数据库中的 user 表,对数据库的用户进行编辑,修改
max_connections
的值。适当改小一点。 - MySQL 版本更改为稳定版本
- 优化网站程序的 SQL 等等
Java前提下, MySQL数据库,一次性存储大量数据导致内存溢出
内存溢出导致程序崩溃,也分是 Java 层崩了,还是 MySQL 崩了。 如果是 Java 层崩了:
- 注意不要一次性加载太多的数据到内存
- 不再使用的数据要彻底放弃引用关系。Java 虽然是自动回收,回收的原则就是一个对象不再被持有,即引用计数为零
- 如果数据太大,可考虑临时文件
如果是 MySQL 崩了: - 首先增加配置缓存。一般来说 MySQL 是不容易崩的,特别是插入操作的时候
- 查询的时候如果查询结果记录集特别大,会导致一个查询需要使用很大的内存空间,这种是有问题的
- 插入操作都是一条一条的执行,不会导致大内存的使用
如果是数据移植: - 尽量不要用 ORM 框架,比如 Hibernate、MyBatis 等,因为它们都有自己的缓存
- 直接使用 JDBC 比较好
mysql数据库out of memory 内存溢出
- 修改配置文件,扩大查询内存方面的参数,例如
tmp_table_size
,还有别的根据实际情况放大点 - 优化查询语句,尽量避免查询整张表的数据
php 执行mysql中查询时内存溢出怎么办
使用 mysql_unbuffered_query()
可以避免内存的立即占用。如果返回的结果存放到 array 中也是完全没有问题的,也不会出现 PHP 查询 MySQL 数据量过大时导致内存溢出问题。
这种情况一般会在单表数据表数据库比较大的时候出现,建议在使用的过程中限制单次读取数据条数,或者对数据表进行分表。