CouchDB可以在同一台机器上处理数千个不同的数据库吗?CouchDB可以处理数千个独立的数据库吗?
想象一下,你有一个集合BankTransaction
s。有成千上万的记录。 (编辑:没有实际存储事务 - 只是想到了非常大量的非常小的,经常更新的记录,它基本上是一个来自SQL-land的连接表。)
每天你想要发生的事务的摘要视图只在您当地的银行分行。如果所有记录都在单个数据库中,则重新生成视图将处理全部的分支的全部。这是一个更大的工作,对于只关心他特定文档子集的用户来说是不必要的。
这使得每个银行分支似乎都应该划分到自己的数据库中,以便以更小的块生成视图,并且彼此独立。但是我从来没有听说过任何人这样做,而且这看起来像是一种反模式(例如,在数千个不同的数据库中复制相同的设计文档)。
有没有不同的方式来模拟这个问题? (分区应该发生在不同的机器之间,而不是单独的数据库在同一台机器上?)如果不是,CouchDB可以处理成千上万的数据库以保持分区的小型化吗?
(谢谢!)
要回答你的问题,是的。 **但是**,使用非事务性存储进行交易是有风险的...... – ajreal 2012-03-27 10:46:18
@ajreal CouchDB是事务性的,否则它不会通过ACID合规性。每个文档写入在文档级别都是事务性的。您无法一次对> 1文档执行交易。 – 2012-03-27 21:20:33