发现一个新的高性能嵌入式数据库:stoolap

Stoolap 是一个功能丰富的嵌入式 SQL 数据库,完全用 Rust 编写。它面向低延迟事务工作负载和实时分析查询,具有现代 SQL 功能,且无需外部服务器进程。

为什么选择 Stoolap?

Stoolap 的设计围绕着实际的嵌入式数据库需求:

  • ACID + MVCC:并发读写,并具有事务隔离

  • 基于成本的优化:具有自适应执行能力的统计感知规划

  • 丰富的 SQL 功能:连接、子查询、CTE、窗口函数、高级聚合

  • 多种索引类型:B树、哈希、位图、多列和HNSW(用于向量)

  • 纯 Rust 运行时:内存安全实现,无 C/C++ 依赖链

更多信息请查看官方主页: GitHub - stoolap/stoolap: A Modern Embedded SQL Database written in Rust · GitHub

这里有一些基准测试: stoolap/BENCHMARKS.md at main · stoolap/stoolap · GitHub

尝试一下

我已将此软件包打包并托管在我的个人 OBS 仓库中,详情见 GitHub - beavailable/obs-repo: Guide for my personal OBS open-source package repository · GitHub

我很好奇它多进程并发访问会像SQLite3那样一直报「database is locked」报错吗?

sqlite3 的问题可以参见这篇文章: Optimizing SQLite for servers
根据文档来看,stoolap 没有全局互斥锁: https://github.com/stoolap/stoolap/blob/main/docs/\_docs/architecture/mvcc-implementation.md

更新:
stoolap 不支持多进程并发访问:stoolap/docs/_docs/architecture/persistence.md at main · stoolap/stoolap · GitHub

1 个赞

好,现在最后一个问题:这数据库为什么要叫stool-ap啊……

作者有解释:Looks good but... · Issue #14 · stoolap/stoolap · GitHub

1 个赞