json 当数据库有什么问题吗

15 小时 50 分钟前
 shinonome

正在写一个项目, 大概是存一个 tmdb bangumi 的一些数据和一些简单的数据

数据数量估计不会超过 1w(估计 2000 可能就撑死了), 是否有必要上 sqlite 呢, 我自已评估下来, 比较麻烦的是

  1. 数据的关联 比较不清晰
  2. 有数据保存不及时(可接受

sqlite 部份我也写好了, 请问大家会怎么取舍这两个呢

3449 次点击
所在节点    Go 编程语言
35 条回复
lscho
15 小时 46 分钟前
你都写好了还纠结啥,直接 sqlite 呗
Quarter
15 小时 44 分钟前
sqlite 本身就比较轻量级了,直接用就可以了
shinonome
15 小时 37 分钟前
@lscho 感觉放内存里会快很多
ipwx
15 小时 33 分钟前
sqlite
xiaomushen
15 小时 30 分钟前
既然 sqlite 写好了,那还纠结啥?
shinonome
15 小时 21 分钟前
@xiaomushen json 可以少依赖,也更快了
deplives
14 小时 52 分钟前
你一共就 1w 数据,放磁盘和放内存的差别大吗?
chendy
14 小时 42 分钟前
sqllite ,下限比手撸文件高到不知道哪里去了
xiaomushen
14 小时 39 分钟前
@shinonome 随便吧,反正就那点儿数据
darkengine
14 小时 37 分钟前
放内存里会快很多 -- 你的 json 数据不用持久化?
Ketteiron
14 小时 37 分钟前
json 你要考虑这几个问题:
1. 数据竟态,多个进程修改同一个文件互相覆盖,极端情况下文件可能会损坏
2. 序列化/IO 开销大,改动 1 个字符也要重新全部读取->序列化->修改->反序列化->全部写入
3. 如果选择常驻内存模式不会有上述问题,但是新增了磁盘保存问题,应用意外退出会丢失数据
当你解决完所有问题,恭喜你再次发明了 sqlite
Vegetable
14 小时 33 分钟前
你这 json 是数据库吗?只是一个持久化文件,本质是内存数据的快照而已。

这两个东西放一起比根本就不是 json 当数据库有什么问题,而是你究竟需不需要数据库。
adgfr32
14 小时 30 分钟前
写内存里,全量备份成文件问题都不大。
Ipsum
14 小时 25 分钟前
我想起了之前有个神人,用 es 当关系数据库用,里面用户表全是 json 。
fkdtz
14 小时 11 分钟前
1w 条数据还值得纠结一下吗?
除非你是打印到 A4 纸上再 OCR 识别,
否则哪个方案都不会有什么大区别
julyclyde
14 小时 5 分钟前
json 本身没有索引吧,完整加载到内存之后才有,会导致内存占用大
当然你如果数据量少那就无所谓了。我自己也是用 json 的


但是你已经 sqlite 了还犹豫啥,坚持 sqlite 吧!
json 谈不上减少依赖啊。json 和 sqlite 都是 python 自带的标准库里的东西
sunny352787
13 小时 53 分钟前
你做的啥东西啊?都到内存里了为啥还是 json ?没有自己的结构吗?你搞几个 map 存也行啊,游戏里很多都是这么干的
OneLiteCore
13 小时 46 分钟前
看你及时性要求的吧,如果需要实时反馈的比如订单之类的,那还是老老实实上数据库吧。

但如果是那种用户行为统计数据的话及时性要求就不高了,可以考虑把用户统计的数据直接保存为 JSON ,然后可以使用 DuckDB 直接对文件夹下的所有 JSON 进行 SQL 语法检索。唯一的要求就是最好存 SSD 里面,毕竟这种场景下的都是大量细碎的小文件。
shinonome
13 小时 41 分钟前
@Ketteiron #11 emmm,也是呀, 看来还是要考虑很多
xdeng
13 小时 32 分钟前
json 的解析基本就是字符串的解析 慢 大,sqlite 可是有格式的二进制 快 小。

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

https://ex.noerr.eu.org/t/1164798

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

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

© 2021 V2EX