我正在读书 性LevelDB 并发现:
即将推出的Chrome浏览器版本包括构建在LevelDB之上的IndexedDB HTML5 API的实现
IndexedDB的 也是一个简单的键/值存储,能够索引数据。
我的问题是: 如何在键/值存储之上构建索引?我知道索引处于最低级别是n-ary树,我理解数据在数据库中索引的方式。但是如何使用像LevelDB这样的键/值存储来创建数据库索引呢?
我正在读书 性LevelDB 并发现:
即将推出的Chrome浏览器版本包括构建在LevelDB之上的IndexedDB HTML5 API的实现
IndexedDB的 也是一个简单的键/值存储,能够索引数据。
我的问题是: 如何在键/值存储之上构建索引?我知道索引处于最低级别是n-ary树,我理解数据在数据库中索引的方式。但是如何使用像LevelDB这样的键/值存储来创建数据库索引呢?
重要的特征并不是它支持自定义比较器,而是支持通过键进行有序迭代,从而搜索部分键。您可以使用约定来分隔字符串值来模拟键中的字段。位于leveldb之上的许多脚本层都使用这种方法。
该 字典视图 键值存储的一个原因是,您只能通过完全匹配来判断键是否存在。使用它并不是真的可行 只是 这样的KV商店作为数据库索引的基础。
只要您可以从部分匹配开始迭代键,就足以为索引提供搜索和排序操作。
只需要做一些事情,LevelDB支持使用自定义比较器对数据进行排序 您链接到的页面:
根据项目现场,主要特点是:
因此,LevelDB可以包含可以根据1个排序顺序对数据进行排序/索引的数据。
如果您需要多个可索引字段,则可以添加自己的B-Tree,它在LevelDB之上工作。我想这是Chrome浏览器采用的那种方法,但我只是在猜测。
你总能看透 Chrome源码。