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)?;
评论