有没有内置数据库可存储上亿数据的, 如 sqlite 这种的?

2021-02-24 14:58:56 +08:00
 bthulu

并发量几乎没有, 但是数据量比较大, 上亿条是有的. 数据量大了以后, sqlite vacuum 一下要好久好久, 造成业务 ting 停顿半个小时到几个小时不等, 实在受不了了. 有没有别的这种, 内嵌到 jar 包里的本地数据库解决方案, 不要长时间停顿的

1692 次点击
所在节点    问与答
10 条回复
optional
2021-02-24 15:01:42 +08:00
leveldb
mokeyjay
2021-02-24 15:10:00 +08:00
到了这个数据量,我觉得停顿是你本地硬盘不行的原因吧。机械硬盘?
bthulu
2021-02-24 15:32:56 +08:00
@mokeyjay sqlite vacuum 会将当前整库数据复制一份, 再把原来的库删掉. 整库数据有几百 G, 几百 G 数据复制一下, 你觉得什么牛逼硬盘能在几秒内搞定?
bthulu
2021-02-24 15:38:40 +08:00
@optional leveldb 只能按 key 取数据啊, 我这至少要支持额外的两列索引
mokeyjay
2021-02-24 15:40:57 +08:00
@bthulu #3 ramdisk
您这人真会说话,嘴真甜,给您点赞
QBugHunter
2021-02-24 15:46:43 +08:00
楼主你先排除硬盘的原因。。。
你到底复制了多少数据导致停顿半小时的,你说亿级别的,那数据库文件到底有多大

Sqlite3 对 1-10 亿级别的数据处理,除非特殊情况,否则不会出现性能瓶颈
bthulu
2021-02-24 15:58:00 +08:00
@QBugHunter 增删改查是没有问题, 就是 vacuum 是个大问题啊
bthulu
2021-02-24 15:58:29 +08:00
或许我该用自动 vacuum, 这样不用复制数据倒是快很多
itskingname
2021-02-24 16:03:07 +08:00
@QBugHunter 1-10 亿级别都没有性能瓶颈。如果只是读的时候,已经可以吊打 MySQL 了。
systemcall
2021-02-24 17:28:52 +08:00
@bthulu 几百 G,当然是用 M1 搞定

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/755824

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX