Golang Go语言中本地文件存储引擎有哪些生产可用的包
甲方觉得 sqlite 有点 low,数据量的话一个“表”大概最多 1w 行吧,不一定要支持直接执行 sql ,主要指标还是查询速度和故障后的数据恢复,目前预备用的的开源包是 bleve ,不知道有没有一些坑,或者说有没有更好的方案?
Golang Go语言中本地文件存储引擎有哪些生产可用的包
有点好奇,甲方为什么会觉得 sqlite 有点 low 。。
让甲方加钱上 oracle
1 万多行也不多吧?
其他数据库都是为分布式、网络通讯设计的,一通操作下来没优化好的话说不定还不如 sqlite ,就算比 sqlite 好,单机运行也好不了太多。
不过甲方是爸爸,听他的,给他报个价换 oracle ,听完价格他就会觉得 sqlite 挺好的
啥数据库处理 1w 行也不 low 啊
键值对存储,查询是不是会弱一点?
问了,实体数据库是拒绝的,因为会有维护成本
1 万行数据直接用 txt 文本文档存储都行
bleve 挺好用的,但是是用来全文搜索引擎的,一万行随便弄吧,bboltdb 都行。
1w 行直接放内存
objectbox ? 是 lmdb 的包装
duckdb
你自己测试好极限速度,给甲方速度保证,可以吗?
比如,几天前用 V 友的场景,测试了下速度:
Python 都能每秒 1W 写入事务,每事务记录 12 字段(几百字节) + 64 字符 唯一索引验证(这个也算读取了吧?)。
1000W 记录时,仍能 7000 TPS (六七年前的低压轻薄本上测试,[帖子及源码]( /t/1070957#reply13 ))
少了个万
几百万条级别没任何问题
你把 sqlite 源码下来,自己编译,改改名字,不叫 sqlite 了,就叫 GaoDaShangDB ,甲方就不觉得 low 了。
sqlite 很强的
因为名字里带 Lite ,甲方觉得是青春版,他想上 SQL Pro Max
嵌入式数据库,sqlite 就是顶流,顶尖,最强没有之一。
建议列一个表,给三个选项,其中推荐 sqlite ,另外配一个候选列表,意见和候选都有了,给甲方自己选。
我看全屏都是 3k 和 5k 如何均价 2
笑死, sqlite 本地数据库, 性能猛的, 就是字段检查等乱七八糟的没做限制, 客户真要规范什么的, 让客户出钱上 mysql, oracle.
轻量的东西用的比较爽阿 对于开发也比较好控制 更容易写出灵活动态的东西
他们不识货才觉得 low 1 万条说实话也不需要 db 哪怕再乘上 10 或 100 用其它的实属大砲打小鸟 重武器需要储备时间需要使用成本 不过没办法现在流行重型工具 功能还未必有必要和有沉余问题或鱼与熊掌不能兼得 解需求来看很不美的
这么点数据你直接 json 存都可以
#23 三年前,SQLite 支持字段严格检查类型了: https://sqlite.org/stricttables.html
改个 sqlProMax 名就行了。
觉得 low 那就要和钢铁侠用甲骨文一样的数据库可,那就是 Oracle.
你总共就一万多条,有啥查询性能,而且 LevelDB 可以包在程序里面,不过就算 sqllite 也没啥维护成本。
微信也是 sqlite 呢
在Golang(Go语言)中,对于本地文件存储引擎,存在多个生产可用的包,这些包提供了丰富的功能和高效的性能,以满足不同的存储需求。以下是一些常见的本地文件存储引擎包:
-
标准库中的os和io/ioutil包:
- os包提供了对文件和目录操作的基础功能,如创建、删除、读写等。
- io/ioutil包(注意:在Go 1.16版本后,部分功能被迁移到io和os包中)提供了便捷的I/O操作,如读写文件、复制文件等。
-
第三方包:
- go-storage:一个厂商中立的存储库,支持多种存储服务,包括本地文件系统。它提供了统一的接口,使得开发者能够在不同的存储服务之间无缝切换。
- badger:一个高性能的键值存储引擎,适用于需要快速读写操作的应用场景。它支持事务和持久化,非常适合本地文件存储。
这些包各有特色,开发者可以根据具体需求选择适合的包来实现本地文件存储功能。在选择时,建议考虑包的性能、稳定性、易用性以及社区支持等因素。同时,对于第三方包,务必关注其更新频率和文档质量,以确保在生产环境中的可靠性和可维护性。