Questions tagged «couchdb»


2
CouchDB与MongoDB [关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 评估面向文档的存储,CouchDB与MongoDB的优缺点是什么?

1
数据库如何存储可变长度字段的索引键值(在磁盘上)?
语境 这个问题与SQL和NoSQL数据库系统中索引的低级实现细节有关。索引的实际结构(B +树,哈希,SSTable等)无关紧要,因为该问题专门涉及存储在任何这些实现​​的单个节点内的键。 背景 在SQL(如MySQL的)和NoSQL(CouchDB的,MongoDB的,等等)数据库,如果您在列或数据的JSON文档字段建立索引,你实际上是导致数据库做的就是创建本质上所有的排序列表这些值以及与该值有关的记录所在的主数据文件中的文件偏移量。 (为简单起见,我可能会手动放弃特定展示的其他深奥细节) 简单经典SQL示例 考虑一个标准的SQL表,该表具有一个简单的32位int主键,我们可以在该主键上创建索引,我们最终将获得一个排序后的整数键的索引在磁盘上的索引,并与数据文件中的64位偏移量相关联,其中记录的生命,例如: id | offset -------------- 1 | 1375 2 | 1413 3 | 1786 索引中键的磁盘上表示形式类似于以下内容: [4-bytes][8-bytes] --> 12 bytes for each indexed value 坚持使用文件系统和数据库系统优化磁盘I / O的标准经验法则,假设您将密钥存储在磁盘上的4KB块中,这意味着: 4096 bytes / 12 bytes per key = 341 keys per block 忽略索引的整体结构(B +树,哈希,排序列表等),我们一次将341个键的块读写到内存中,然后根据需要返回到磁盘。 查询范例 使用上一部分中的信息,假设有一个查询“ id …
16 mongodb  index  nosql  couchdb 

3
CouchDB和文档版本控制
我目前正在使用CouchDB开发一个具有Wiki风格的应用程序,并且正在尝试实现文档版本控制方案。我看到它的方式有两种: 将每个版本存储为单独的文档 将较旧的版本存储为单个文档的附件。 现在,我有一种排名第一的工作方式。当用户编辑文档并保存时,后端首先将以前的修订版本复制到新文档中,然后保存新版本。每个文档都有一个“历史”数组,其中包含每个版本的数据(旧版本的文档_id,时间戳,编辑器等)。 由于此历史记录数组对于经常更新的文档可能会很漫长,因此我有一个视图,该视图在正常读取期间会获取没有历史记录的文档(还有另一个用于获取历史记录的视图)。 我的问题是:我对目前的方法感到不安,并一直在考虑更改为“附件”方法。但我不确定。我希望有一个比我更了解CouchDB的人(我才来这两个星期了-这是我的第一个使用CouchDB和NoSQL的项目)可以告诉我每种方法的优缺点方法。还是有其他我忽略的版本控制方案?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.