优化大型 CouchDB 数据库的最佳方法是什么?
What is the best way to optimize a massive CouchDB database?
我在 AWS 上有一个 CouchDB 实例 运行(在 CentOS 上是 m4.large EC2),它的大小超过 75GB,并且还在不断增长。我在修改和索引该数据库的视图时遇到了问题,现在这需要将近 2 天的时间。
我可以使用哪些优化策略来确保:
- 在 map-reduce 视图更改后重新索引可以做得更多
高效
- 可以更快地从 map-reduce 视图中获取数据(使用
一个自定义的 reduce 函数)
我已阅读 CouchDB guide 上的建议,但它们更多地针对优化插入。
由于您拥有如此庞大的数据库,当一个视图发生变化时重新索引视图确实需要时间,它不会像您拥有较小的数据库时那样近乎即时。既然我已经说过了,这里是#1 的解决方案。
每当更新设计文档时,它都会重新索引该文档中的所有视图,因此将每个视图都放在自己的设计文档中可能会提高重新索引速度。由于你确实有一个庞大的数据库,它仍然需要时间来浏览每个文档并重新索引它们,只是现在它只做一个视图而不是所有视图。
编辑:链接
CouchDB Views Intro -> 这是 CouchDB 视图文档的概述。我已经多次阅读并重新阅读此页面,每次总能找到新的东西。我建议多读几遍才能确定。
CouchDB One vs Multiple Design Documents -> 同一页,但它会将您带到上面关于我的回答的部分。请仔细阅读,希望对您有所帮助。
我不知道如何解决 #2,抱歉。
我在 AWS 上有一个 CouchDB 实例 运行(在 CentOS 上是 m4.large EC2),它的大小超过 75GB,并且还在不断增长。我在修改和索引该数据库的视图时遇到了问题,现在这需要将近 2 天的时间。
我可以使用哪些优化策略来确保:
- 在 map-reduce 视图更改后重新索引可以做得更多 高效
- 可以更快地从 map-reduce 视图中获取数据(使用 一个自定义的 reduce 函数)
我已阅读 CouchDB guide 上的建议,但它们更多地针对优化插入。
由于您拥有如此庞大的数据库,当一个视图发生变化时重新索引视图确实需要时间,它不会像您拥有较小的数据库时那样近乎即时。既然我已经说过了,这里是#1 的解决方案。
每当更新设计文档时,它都会重新索引该文档中的所有视图,因此将每个视图都放在自己的设计文档中可能会提高重新索引速度。由于你确实有一个庞大的数据库,它仍然需要时间来浏览每个文档并重新索引它们,只是现在它只做一个视图而不是所有视图。
编辑:链接 CouchDB Views Intro -> 这是 CouchDB 视图文档的概述。我已经多次阅读并重新阅读此页面,每次总能找到新的东西。我建议多读几遍才能确定。
CouchDB One vs Multiple Design Documents -> 同一页,但它会将您带到上面关于我的回答的部分。请仔细阅读,希望对您有所帮助。
我不知道如何解决 #2,抱歉。