当前位置:首页 > 内存 > 正文

Mysql数据量大java内存溢出

  • 内存
  • 2024-08-17 12:48:55
  • 6153

一、Java前提下,MySQL数据库,一次性存储大量数据导致内存溢出内存溢出会导致程序崩溃,无论是Java层崩溃还是MySQL层崩溃。
如果Java层崩溃,不要一次将太多数据加载到内存中,并完全放弃对过时数据的引用关系。虽然Java会自动回收回收的原理是,一个对象不再持有;这意味着参考系数为零。如果数据太大,请考虑临时文件。
如果mysql崩溃了,首先增加配置缓存。一般来说,mysql不容易崩溃,尤其是在插入操作时。询问时,如果查询结果记录集特别大。单个查询将使用大量内存空间,这是一个问题。安装操作都是一一进行的,不会造成大量的内存占用。
如果只是数据迁移。最好直接使用JDBC,因为它们都有自己的缓存。
二、java线程中使用mysql连接查询数据库一般不建议这样做。当业务量较大,多线程不控制时,数据库连接会受到影响公司
一般做法:数据库连接池(见一些统计)查询实际使用的资源,大多数情况下不超过整个Query数据库生命周期的30%。使用打开、创建和关闭连接等操作。如果此时建立数据库连接池,就可以有效释放这部分时间。
三、mysql内存溢出怎么处理使用无缓冲游标以避免内存问题。
游标默认使用缓存模式。这种巧妙的模式返回所有结果集并将它们加载到内存中。如果结果集很大,就会有噪音,内存会爆。
Unbufferedcursor每次只返回下一行结果,占用内存很少。但这种模式有很多缺点,因此不作为默认模式。