下面是 AI 推荐的:
优点:轻量、无需服务器、配置简单、支持 SQL 查询。 使用场景:移动应用、桌面应用、小型网站。
优点:内存数据库、支持 SQL 、可嵌入 Java 应用。 使用场景:Java 应用、测试、开发。
优点:高性能、键值存储、事务支持。 使用场景:嵌入式系统、需要高并发和事务支持的场景。
优点:由 Google 开发,键值存储,性能优异。 使用场景:需要高性能键值存储的场景。
优点:基于 LevelDB ,增加了更多功能和优化。 使用场景:需要高并发和持久化存储的场景。
优点:内存映射数据库,支持多线程读写。 使用场景:需要高并发访问和持久化存储的场景。
优点:文档型数据库,支持 JSON 存储,易于使用。 使用场景:需要灵活数据模型和同步能力的应用。
优点:移动端优化的数据库,支持多平台。 使用场景:移动应用,特别是需要跨平台支持的应用。
优点:轻量级的文档型数据库,适用于 Node.js 。 使用场景:Node.js 应用,需要轻量级存储解决方案。
1
ounxnpz 70 天前
excel
|
2
Amose2024 69 天前 5
所以你不是来问问题的啊,卖弄?
|
3
opengps 69 天前
这些不够你选得?
|
4
kk380446 69 天前
op 手撸一个数据库出来
|
5
zoharSoul 69 天前
sqlite 啊 这还用想吗
|
6
tdb11039gg OP |
7
changdy 69 天前
看你具体场景 ,一般是 sqlite 或者 h2 吧.
|
8
netnr 69 天前 via Android
DuckDB
|
9
chihiro2014 69 天前
直接 docker 安装,无所谓轻量不轻量
|
10
dreamk 69 天前
isar 支持所有平台
配合 Tantivy 实现跨平台的全文搜索 模糊错别字拼音都支持,省去 es 了 |
11
wheat0r 69 天前
ms access
|
12
tdb11039gg OP |
13
FangHao 69 天前 1
完全不知道你需求场景是啥,只看到一个轻量本地
|
14
wxf666 69 天前
@dreamk #10
1. 有提供 Cli 版本,以及其他语言使用的库吗? 2. 支持并行写吗? @tdb11039gg #12 SQLite 还不能满足你吗? 1. Python 都能每秒 1W 写入事务,每事务几百字节 + 64 字符 唯一索引验证。 1000W 记录时,仍能 7000 TPS 。(六七年前的低压轻薄本上测试,[源码](/t/1070957#reply13)) 2. 几年前,微信说,手机上百万百字聊天记录, 搜索三个词,只需 0.0029 秒。10 秒全文索引完毕。 可无限读事务同时查询,也不影响写事务并行。 支持:拼音及首字母(自动解决多音字)和汉字任意混合、模糊(通过 NEAR )、同义词(错别字是这个原理吗?)等 ([文章链接]( https://mp.weixin.qq.com/s/Ph0jykLr5CMF-xFgoJw5UQ)) 3. 我测试过,在电视盒子上(单核 Nginx 默认页压测 1W QPS ,性能不及 6 年前骁龙 636 千元机一半), Python 的 FastAPI + SQLite + 去年本站被爬的千万数据(此时 5GB 数据库): - 200 模拟发帖回帖 + 全文索引 / 秒 - 1100 获取整帖(包括回帖者信息) / 秒 |
15
s9ar 69 天前
TP 负载就 sqlite 啊,AP 性质的就 duckdb
|
16
s9ar 69 天前
如果只需要 kv 就 leveldb 咯
|
17
tdb11039gg OP |
18
iorilu 69 天前
数据库就考虑 2 个
本地跑 sqlite 网站做服务: portgres 其他不用看, 没那空, 当然了靠搞数据库吃饭的人除外 |
19
renguangwei 69 天前
没有应用场景啊,那就 txt
|
20
MrDarnell 69 天前
根本不用想 sqlite3
|
21
wxf666 69 天前
@tdb11039gg #17
1. 请教下,存 json 的优势是什么呢? - 增删查改方便?(如果不写 SQL ,而是用 ORM ,应该无所谓吧?) - 物理上,这些数据聚在一块儿,查找起来速度更快? - ……? 2. 逻辑上说,非关系能干的,关系应该都能干吧? 就是可能慢些,或其他缺陷? 3. SQLite 支持 json 增删查改聚合处理( json_* 或 jsonb_* 系列函数,或者 -> 及 ->> 操作符) 但没有 jsonPath 那样简洁的方式。。(做个插件,或者宿主语言里实现个函数给 SQLite 用也行) 比如查某帖里,某人近一年来的回复: ```sql SELECT 回复 ->> '内容' FROM 帖子表 JOIN json_each(回复数组) 回复 WHERE 帖子 ID = 1072404 AND 回复 ->> '作者' == '某人' AND 回复 ->> '时间' >= '2023-09-13' ``` 也支持对 json 字段做索引( Indexes On Expressions ),但目前不支持多值索引(如索引一个数组)。 真要实现,可以做个触发器,将数组里的差异项,更新到另一个索引里(如《帖子 ID ,回复人 ID ,楼层 or 楼层数组》索引)。 但我感觉,这些实现成一般关系表,就足够了。。 |
22
tdb11039gg OP @iorilu 有道理,楼上说的也没错,有 key,value 和非结构化的一些场景也可以考虑用别的。
@renguangwei 像用 sql 一样操作文件多爽呀 @MrDarnell 为啥 @wxf666 非关系型的扩展性强一些,不用去设计表了。想变就变。2 问题不大。3 用 sqlite 的 json 字段应该也可以做。 |
23
wxf666 68 天前
@tdb11039gg #22
前两天,我还见人吐槽,Python 的 *args, **kwargs (相当于支持接收一个 array 和 object ) 原因是动态字段太灵活,太不严谨,文档代码对不上,后期维护太困难等问题。 我很疑惑,用 MongoDB 的,是怎么解决这些问题的呢。。 加上 json 还能字段想变就变,会不会前后期数据,字段都不统一呢。。 帖子:/t/1071840#reply91 |
24
Yjhenan 68 天前
FerretDB + SQLite ?😁
https://github.com/FerretDB/FerretDB FerretDB 的成立是为了成为 MongoDB 事实上的开源替代品。FerretDB 是一个开源代理,它将 MongoDB 5.0+ 有线协议查询转换为 SQL—— 使用 PostgreSQL 或 SQLite 作为数据库引擎。 |
25
tdb11039gg OP |
26
zzmark06 23 天前
非联网的单机 db ,oltp 用 sqlite ,olap 用 duckdb ,都是王者级
若是适配麻烦,postgre 也有 embed 版本,mysql 也有但很难搞不推荐,mysql 试着用 h2 平替,只是兼容性很垃圾。 |