繁体   English   中英

CouchDB压缩

[英]CouchDB Compression

我有一个要存储在外部4TB驱动器上的MySQL数据库,但是将数据库复制到该数据库时,服务器无法重启。 我发现这与扇区大小问题有关。

这使我有理由跳到NoSQL。 我喜欢CouchDB的易用性和HTTP API,但如果不进行压缩,该数据库将无法正常工作。 我有一个40GB的MySQL数据库,数据迁移还不到完成的十分之一,并且已经超过100GB。

有什么我想念的吗? 是否可以压缩?

谢谢!

CouchDB以磁盘空间换取读写速度。 一个可比的CouchDB数据库很可能会比MySQL占用更多的磁盘空间。

话虽这么说,您可以做很多事情来节省磁盘空间:

  • 数据库文件压缩是可用的(如您所指出的那样),但是您可能应该尝试各种算法,以找出最适合实际的算法。
  • 在整个导入过程中,以及作为日常维护的一部分,定期压缩数据库
  • 最后,在编写视图时, 请勿将整个文档作为索引的一部分emit 而是使用include_docs=true查询参数。 (有关其他参数,请参阅文档

换句话说,避免这种情况:

function (doc) {
  emit(doc.key, doc);
}

对于您这样写的每个视图,每个发射都表示该文档正在数据库中重复。 因此,你只需要做到这一点:(大多数时候,你并不需要的是第二个参数)

function (doc) {
  emit(doc.key);
}

我确信您还有其他事情可以做,如果我想更多的话,我将修改此答案。 (如果您知道我错过的任何事情,请发表评论)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM