Golang Go语言中本地文件存储引擎有哪些生产可用的包

发布于 1周前 作者 gougou168 来自 Go语言

甲方觉得 sqlite 有点 low,数据量的话一个“表”大概最多 1w 行吧,不一定要支持直接执行 sql ,主要指标还是查询速度和故障后的数据恢复,目前预备用的的开源包是 bleve ,不知道有没有一些坑,或者说有没有更好的方案?


Golang Go语言中本地文件存储引擎有哪些生产可用的包
32 回复

LevelDB ?

更多关于Golang Go语言中本地文件存储引擎有哪些生产可用的包的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


有点好奇,甲方为什么会觉得 sqlite 有点 low 。。

让甲方加钱上 oracle

1 万多行也不多吧?
其他数据库都是为分布式、网络通讯设计的,一通操作下来没优化好的话说不定还不如 sqlite ,就算比 sqlite 好,单机运行也好不了太多。

不过甲方是爸爸,听他的,给他报个价换 oracle ,听完价格他就会觉得 sqlite 挺好的

啥数据库处理 1w 行也不 low 啊

键值对存储,查询是不是会弱一点?

问了,实体数据库是拒绝的,因为会有维护成本

1 万行数据直接用 txt 文本文档存储都行

bleve 挺好用的,但是是用来全文搜索引擎的,一万行随便弄吧,bboltdb 都行。

1w 行直接放内存

objectbox ? 是 lmdb 的包装

微信用的也是 sqlite ,甲方觉得 low 吗?

你自己测试好极限速度,给甲方速度保证,可以吗?


比如,几天前用 V 友的场景,测试了下速度:


Python 都能每秒 1W 写入事务,每事务记录 12 字段(几百字节) + 64 字符 唯一索引验证(这个也算读取了吧?)。

1000W 记录时,仍能 7000 TPS (六七年前的低压轻薄本上测试,[帖子及源码]( /t/1070957#reply13 ))

开啥玩笑, sqlite 性能远超一般人想象的

几百条级别没任何问题

少了个万

几百万条级别没任何问题

你把 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语言)中,对于本地文件存储引擎,存在多个生产可用的包,这些包提供了丰富的功能和高效的性能,以满足不同的存储需求。以下是一些常见的本地文件存储引擎包:

  1. 标准库中的os和io/ioutil包

    • os包提供了对文件和目录操作的基础功能,如创建、删除、读写等。
    • io/ioutil包(注意:在Go 1.16版本后,部分功能被迁移到io和os包中)提供了便捷的I/O操作,如读写文件、复制文件等。
  2. 第三方包

    • go-storage:一个厂商中立的存储库,支持多种存储服务,包括本地文件系统。它提供了统一的接口,使得开发者能够在不同的存储服务之间无缝切换。
    • badger:一个高性能的键值存储引擎,适用于需要快速读写操作的应用场景。它支持事务和持久化,非常适合本地文件存储。

这些包各有特色,开发者可以根据具体需求选择适合的包来实现本地文件存储功能。在选择时,建议考虑包的性能、稳定性、易用性以及社区支持等因素。同时,对于第三方包,务必关注其更新频率和文档质量,以确保在生产环境中的可靠性和可维护性。

回到顶部