sqlite插入一万多条数据会报内存溢出 该怎么解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlite插入一万多条数据会报内存溢出 该怎么解决相关的知识,希望对你有一定的参考价值。
内存溢出导致程序崩溃,也分是java层崩了,还是mysql崩了。如果是java层崩了,注意不要一次性加载太多的数据到内存,并且不在使用的数据要彻底放弃引用关系。java虽然是自动回收,回收的原则就是一个对象不再被持有,即引用计数为零。如果数据太大,可考虑临时文件。如果是mysql崩了,首先增加配置缓存。一般来说mysql是不容易崩的,特别是插入操作的时候。查询的时候如果查询结果记录集特别大,会导致一个查询需要使用很大的内存空间,这种是有问题的。而插入操作都是一条一条的执行,不会导致大内存的使用。如果仅仅是数据移植,也尽量不要用ORM框架,比如hibernate,mybatis这些东西,因为他们都有自己的缓存,直接使用JDBC比较好。 参考技术A 批量插入分多次执行,每次执行完提交。Python语言 SQLite怎么用内存数据库解决插入数据时速度慢的问题?
我在做网页的数据抓取工作,需要将抓到的数据不断的插入到数据库中,但是插入的速度极慢,上网查了一下,好像可以用SQLite的:memory:,先将数据保存到内存数据库,然后将内存数据库里的内容load到文件数据库,有个例子http://my.oschina.net/u/89296/blog/42717,我运行完这个例子感觉好像是一次性的插入,而我需要的是不断的插入,具体的怎么办,还请大家帮帮忙!!
参考技术A 添加主键,建议主键是id 为int型的自增,这样可以显著的提高数据的插入和删除速度 参考技术B 你不断写文件数据库,和不用内存数据库有什么区别。另外大量数据不推荐用sqlite,mysql什么的不是也挺好,sqlite是面向嵌入式系统的 参考技术C 应该是连接网页的时候慢以上是关于sqlite插入一万多条数据会报内存溢出 该怎么解决的主要内容,如果未能解决你的问题,请参考以下文章
我要向数据库中插入多条数据,但是代码好像只能插入一条,插入多条会报错,说值过多,这个怎么解决啊: