16 个稳定版本 (3 个主要版本)
使用旧的 Rust 2015
4.1.4 | 2021年3月21日 |
---|---|
4.1.3 | 2018年12月4日 |
4.1.2 | 2017年1月30日 |
4.1.0 | 2016年12月1日 |
1.1.0 | 2016年6月14日 |
在 数据库实现 中排名第 76
每月下载量 50
34KB
643 行代码(不包括注释)
快捷方式
此包提供了一种基于列的索引和可查询的存储系统。
该存储系统在本质上是一种基于行的存储,其中所有行都具有相同数量的列。所有列都是相同的 "类型",但由于它们可以是枚举类型,因此您可以有效地使用不同类型的值。数据存储在 BTreeMap
中,其中最外层的 BTreeMap
是动态大小的(并且随着更多行的到来可能会重新分配),而最内层的 Vec
则预期不会更改。映射索引是一个自增的行标识符,类似于 SQLite 中使用的:[SQLite 行ID](https://www.sqlite.org/lang_createtable.html#rowid)。
此包有趣之处在于,它还允许您对列进行索引以进行快速查找。这些索引会在数据集更改时自动更新,以确保查询继续返回正确的结果。索引应遵循 EqualityIndex
特性或 RangeIndex
特性。正如您所期望的,前者允许加快精确查找的速度,而后者还可以执行高效的范围查询。
查询通过调用 find
并传递一组将进行 AND
操作的 Condition
来在数据集上执行。目前不支持 OR
操作 --- 相反,请发出多个查询。每个 Condition
代表对单个列中值的比较。系统会自动选择使用哪个索引来满足查询,这基于每个索引返回该列预期行数的启发式算法。
已知限制
- 当前匹配操作的集合相当有限。
- 当前系统只提供添加/删除抽象(即,不支持编辑)。