sqlite-zstd 用 Rust 编写的 SQLite 压缩扩展开源项目

我要开发同款
匿名用户2022年08月03日
103阅读
开发技术Rust
所属分类数据库调整和优化、数据库相关
授权协议LGPL-3.0

作品详情

sqlite-zstd是 SQLite的扩展,为 SQLite提供透明的基于字典的行级压缩。这允许你压缩 SQLite数据库中的条目,就像你压缩整个数据库文件一样,但同时保留了随机访问。

根据不同的数据,这可以将数据库的大小减少80%,同时保持大部分的性能不变(甚至可以提高性能,因为从磁盘上读取的数据更小)。

编译

该项目可以以两种模式构建:

作为Rust库作为纯SQLite扩展

可以从GitHubrelease中获取SQLite扩展二进制文件,或者可以手动构建扩展:

cargobuild--release--featuresbuild_extension#shouldgiveyoutarget/release/libsqlite_zstd.so用法

可以将此库作为SQLite扩展或作为Rust库加载。请注意,sqlite扩展不是持久的,因此每次连接数据库时都需要加载它。

SqliteCLI

在REPL中加载它:

$sqlite3file.dbSQLiteversion3.34.02020-12-0116:14:00sqlite>.load.../libsqlite_zstd.so[2020-12-23T21:30:02ZINFOsqlite_zstd::create_extension][sqlite-zstd]initializedsqlite>

或者:

sqlite3-cmd'.loadlibsqlite_zstd.so''select*fromfoo'

CAPI

intsuccess=sqlite3_load_extension(db,"libsqlite_zstd.so",NULL,NULL);

Rust

推荐的方法是添加sqlite_zstd作为项目的依赖项,然后使用

letconn:rusqlite::Connection;sqlite_zstd::load(&conn)?;

或者,也可以像任何其他扩展一样加载扩展:

letconn:rusqlite::Connection;conn.load_extension("libsqlite_zstd.so",None)?;
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论