json 当数据库有什么问题吗

18 小时 26 分钟前
 shinonome

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

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

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

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

3489 次点击
所在节点    Go 编程语言
35 条回复
liKeYunKeji
16 小时 7 分钟前
再少的数据我都是直接 mysql ,习惯了
strobber16
16 小时前
推一手 chaiSQL
skallz
15 小时 56 分钟前
json 问题不大,之前写 node 也用过轻量级数据库 lowdb ,它实际上也是用的 json 的
WarlockMan
15 小时 29 分钟前
持久化的可靠性,json 方案相当于内存数据库,没解决持久化可靠性问题。如果进程崩了,数据丢失了。
sqlite 把这部分常见的问题都托管了。
Rickkkkkkk
14 小时 24 分钟前
直接本地一个 map 就装好了。
daxin945
12 小时 49 分钟前
看看 duckdb 呢
uds9u32br
12 小时 45 分钟前
go 的话接受 kv 可以用 bolt
lovelylain
12 小时 32 分钟前
json 的优势是可以直接用文本编辑器修改,如果用不到这点,相比 sqlite 实在没理由选 json
mogita
11 小时 46 分钟前
多大 payload ?希望快就全搂到内存里呗,比任何 IO 都快。。
godall
10 小时 59 分钟前
好搞笑,1w 数据就是手搓一个数据库也绰绰有余,至于 JSON 什么的,你结构化数据出来组装成 JSON 也毫无问题,反而 json 检索太麻烦,〔全文检索除外〕,反正数据库低于 1000w 条记录随便什么数据库都没有问题,哪个方便用哪个就行
Div1ne
10 小时 47 分钟前
用 sqlite 。
如果你不想持久化,想追求极致的快,sqlite 也有 memory 模式,全程不用落盘。

sqlite 的好处是你的数据访问层可以用标准的 sql 来写,万一以后你的业务体量大了,方便切换到其他数据库。不要折腾 json 了。。。。
roundgis
9 小时 19 分钟前
一萬條記錄 放 slice 遍歷都用不了多久 不要糾結了
bronyakaka
8 小时 59 分钟前
几千 1w 的数据隔这纠结半天,我们一天 1 千万数据写 pg 里,感觉离崩溃不远了
shinonome
8 小时 53 分钟前
@bronyakaka #33 TVT 别骂了别骂了, 就是数据量太小了才纠结一下要不要数据库, 毕竟只是为了持久存
kuanat
3 小时 16 分钟前
既然是 go 板块,大概率是想避开 sqlite CGO 依赖吧。

目前无需 CGO 的实现就两个思路,要么 modernc.org/sqlite 这种自动化 c 代码转 go 代码的方案,要么就是 modernc.org/sqlite 这种外挂一个中间层通过 ipc 或者什么方式来使用。因为这俩方案在我看来都不理想,所以要么不用,用就老老实实 CGO ,无非就是写个多平台的构建脚本。

一般来说我不推荐用任何文件作为 naive 数据库,因为你需要实现最起码的并发控制(线程安全)、原子写入与(内存和持久化副本)一致性。当然这个东西没那么难,vibe 一下 100 行可能就够用了。不推荐的原因主要还是维护起来麻烦,因为用着用着就发现,这种方案不是很方便存储结构体,需要注意序列化反序列化的问题,然后增删改查也要重新造轮子。日后换方案也是麻烦事。

我比较常用的方案是 etcd-io/bbolt 这个 kv 数据库,该有的功能都有,有个自带的命令行程序,管理导出都方便,不用担心换技术栈。如果不是很依赖 sql 范式对数据做校验,推荐直接把逻辑交给应用代码,数据库就单纯做存储了。这样还有个好处,就是也用不到 orm ,大多数情况下 orm 的表达能力比代码差远了。用 orm 就很容易对调整数据库 schema 的事情产生抵触,毕竟改一次几乎所有语句都会要跟着改,用 kv 数据库一般就没这顾虑。

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

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

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

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

© 2021 V2EX