首页 新闻 会员 周边 捐助

SQLite数据库存储到2G的时候就存不进去了

0
悬赏园豆:10 [已解决问题] 解决于 2019-03-08 16:54

问题

最近在测试项目是否可以采用SQLite数据库来做DB,昨天跑了一晚上程序,向单表
写入了2075981(两百万)条数据,总占用空间2,147,483,648byte(2G),然后就不能插入数据。

驱动返回异常


这个没什么参考价值

个人分析

我使用的是win64,文件系统是NTFS,理论上最大支持2T的单文件,所以应该不是我的文件系统的问题。然后就只有SQLite本身的问题了,它可能对单库或者单表做了什么限制,于是查阅文档:

对每页,单表行数,单表,单库的限制如下:

可以看到单表单库的最大大小远远不止2个G,所以不知道问题出在哪儿,请各位大神指教 ~<_>~

问题补充:

最新找到的异常如下:

另外有朋友提到了SQLite文件损坏的问题,我执行了命令:
PRAGMA integrity_check;
显示结果完好:

小白一只726的主页 小白一只726 | 菜鸟二级 | 园豆:305
提问于:2019-03-08 10:27

最后没有解决database disk image is malformed这个问题,我升级了SQLite的Java驱动,repaire了db文件都没有解决。
项目还是采用的SQLite来存数据,因为我们目前的业务是到100万的时候会清除数据,只要DB的大小不超过2G,还是可以用的。

小白一只726 5年前
< >
分享
最佳答案
0

错误信息是什么?另外不建议在关键位置或者是数据量较大的情况下使用sqlite,哪天文件损坏了欲哭无泪

收获园豆:5
会长 | 专家六级 |园豆:12463 | 2019-03-08 10:44

错误信息如下:database disk image is malformed

小白一只726 | 园豆:305 (菜鸟二级) | 2019-03-08 11:20

@小白一只726: 恭喜贺喜,在下觉得这个错误是因为sqlite文件已经损坏了。不过有办法修复,你去查查官网,看执行啥命令个。有的sqlite工具有修复的功能。我说了,这玩意很坑,除了移动端,最好不要用。

会长 | 园豆:12463 (专家六级) | 2019-03-08 11:26

@小白一只726: https://stackoverflow.com/questions/22623865/sqlite-database-disk-image-is-malformed。用sqlite你就等着入坑吧,建议使用mysql等成熟稳定的数据库。

会长 | 园豆:12463 (专家六级) | 2019-03-08 11:29

@会长: 好的,我研究一下如何修复sqlite文件。

小白一只726 | 园豆:305 (菜鸟二级) | 2019-03-08 12:00

@会长: 我们项目是使用的Oracle,现在要临时存一些数据,可以理解为缓存数据。同时项目占用的内存被限制不能超过某个阈值,如果使用mysql或者是redis的话,要单独启动进程,占用的内存一下就上去了。

小白一只726 | 园豆:305 (菜鸟二级) | 2019-03-08 12:02

@小白一只726: 我看我电脑上启动的mysql内存还没到4m呢,在不执行sql的时候。与其这样,还不如升级一下硬件

会长 | 园豆:12463 (专家六级) | 2019-03-08 14:55

@会长: 我的需求是:一个线程一直往数据库写,一秒50条左右;另外一个线程每隔两个小时检测数据库数据量是否超过100万,如果超过100万会清除部分数据,让数据库数据维持在100万;同时该数据库每几秒就会被甲方的程序调用查询数据;最后我们的程序是部署到甲方的服务器上,甲方的服务器对我们的程序占用的内存和CPU资源有严格的限制,如果因为我们的程序导致out of memory让他服务器上的其他程序崩了的话,我们就哦豁了~<_>~。

小白一只726 | 园豆:305 (菜鸟二级) | 2019-03-08 16:51
其他回答(2)
0

一看就知道你用的是老版本, 不是最新的, 你下载一个最新的来用, 老版本就是有限制的, 你看一下你的版本号就知道

收获园豆:5
风浪 | 园豆:2996 (老鸟四级) | 2019-03-08 11:00

Manifest-Version: 1.0
Created-By: 1.5.0_14 (Sun Microsystems Inc.)
这个版本算老吗?

支持(0) 反对(0) 小白一只726 | 园豆:305 (菜鸟二级) | 2019-03-08 11:23

@小白一只726:
2.74以前都是2G, 要3以后的版本才支持2TB, 1开始的版本, 比老爷还老

支持(0) 反对(0) 风浪 | 园豆:2996 (老鸟四级) | 2019-03-08 17:08
0

请问博主,您的问题解决了吗?能分享下方法吗

发红的茶叶水 | 园豆:202 (菜鸟二级) | 2023-04-11 16:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册