CouchDB可以处理数千个独立的数据库吗?
CouchDB可以在同一台机器上处理数千个独立的数据库吗?
想象一下,你有一个BankTransactions的集合.有数千条记录. (编辑:实际上并不存储事务 – 只考虑非常大量的,经常更新的记录.它基本上是来自SQL-land的连接表.) 您每天都需要仅在当地银行分行发生的交易摘要视图.如果所有记录都在一个数据库中,则重新生成视图将处理来自所有分支的所有事务.这是一个更大的工作块,对于仅关心其特定文档子集的用户来说是不必要的. 这使得看起来应该将每个银行分支划分为其自己的数据库,以便以较小的块生成视图,并且彼此独立.但是我从来没有听说有人这样做过,而且它似乎是一种反模式(例如,在数千个不同的数据库中复制相同的设计文档). 我应该采用不同的方式来模拟这个问题吗? (分区是否应该在不同的机器之间进行,而不是在同一台机器上的单独数据库?)如果没有,CouchDB可以处理数千个数据库来保持分区小吗? (谢谢!) 解决方法[警告,我假设你在某种生产环境中运行它.如果这是针对学校或宠物项目,请简短回答.]简短的回答是“是”. 更长的答案是你需要注意一些事情…… >你将使用许多系统设置(如最大文件描述符)来玩whack-a-mole. 但是,如果你尝试这样做,你将遇到的最大问题是CouchDB本身不能水平扩展[well].如果你添加更多的CouchDB服务器,他们都将拥有重复的数据.当然,你的最大开放dbs计数将随着每个节点的增加而线性扩展,但其他方面如视图构建时间则不会(例如,他们都需要进行自己的视图构建). 虽然我在BigCouch集群上看到过数千个开放数据库.有趣的是,这是因为发电机集群:更多的节点并行执行不同的事情,而相对于彼此复制的CouchDB服务器. 干杯. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |