0
Couchdb通过使用顺序标识显示出极大的性能提升。然而,仅仅通过查看内容(例如将用户名散列成ID)就能够瞬间“知道”对象的ID是有些事情要说的。 我怎样才能或多或少地达到散列ID的便利性,然而顺序ID的性能提升。CouchDB使用顺序标识,但能够根据内容立即确定标识
Couchdb通过使用顺序标识显示出极大的性能提升。然而,仅仅通过查看内容(例如将用户名散列成ID)就能够瞬间“知道”对象的ID是有些事情要说的。 我怎样才能或多或少地达到散列ID的便利性,然而顺序ID的性能提升。CouchDB使用顺序标识,但能够根据内容立即确定标识
我不认为解决方法是可能的。
查看键查找只比文档ID查找慢一点点。 (请参阅benchmarks。)我的理解是,文档_id
的类型在查看查找的情况下不会影响性能,因为它依赖于其自己的独立B树结构。因此,实际查找用户信息时,查看顺序识别的文档是完全正确的。
但我明白,你想成为能够注册用户,并保证不能有任何的用户名冲突。所以你必须在文档ID中有用户名。
这是如果你决定要对CouchDB的最终一致性方法反叛做相应的事情。
而且,我的理解是,你不太可能会遇到性能降级,除非你正在做的随机用户名的批量插入或处理大量的每秒新用户注册。
这与其他数据库所做的性能相同。您可以更快地插入数据,而无需通过锁定/交易来强制插入数据。
一个疯狂的想法,我只是有可能也工作,虽然这是很难说的表现会是什么样子在实践中没有想出来。您可以将它们一起存储在单个文档中(甚至分为a-doc,b-doc等),并使用文档更新处理程序来确保新注册的用户名被自动添加/拒绝。这自然会导致另一个想法......保持包含用户名 - >顺序doc id映射日志的文档。如果您无法将其插入日记本文档中,那么您不需要继续添加该用户。 – 2011-01-09 07:14:54