database - 不守规矩的磁盘使用,不会缩水

标签 database performance nosql couchdb storage

我在 CouchDB 中有大约 10 个数据库,其中最大的在 Fauxton 中显示大约 1MB。这听起来不错,因为里面没有二进制文件,只有文本。

然而,我的 Couch 数据文件有 20 GB!

我在每个数据库上运行了 _compact,这为我节省了大约 5GB(原来是 25GB!),但这仍然不能解释为什么它们仍然占用这么多空间。

我该怎么做才能解决这个问题?

编辑: 在到目前为止的有用评论之后添加更多信息(谢谢!):

  1. 复制到新服务器似乎可以解决几天的问题(一切都只是几兆)。然后莫名其妙地再次启动数据 chomp。早些时候,我看到它被大量使用,但没有占用任何额外空间。然后突然间它又关闭了!

  2. Fauxton 的数据库大小仍然很小,只有数据文件/碎片占用空间 fauxton info

  3. 文档主要是文本消息(通过 API 接收)、日志文件(例如,对于任何给定的操作,存在一个文档,其中包含一个数组,该数组具有推送给它的事件)和类似的东西。

  4. 使用大量 View (每个数据库大约 8 个设计文档,每个 View 有 1 到 8 个 View )和一个 Mango 搜索(自由文本搜索文本消息,其中最小的数据库有 0 个,并且最大的大约 500 个)

  5. 很多文档经常更新,到目前为止,几乎没有任何内容被删除。

  6. 没有二进制文件或任何类型的附件。所有纯文本。

最佳答案

CouchDB 存储文档的修订。您可以配置存储的修订数量。您的数字可能高得离谱。一探究竟。不确定,只是一个想法。

嗯,你提到你已经压缩了你的数据库,也许这会处理修订号,不确定。

关于database - 不守规矩的磁盘使用,不会缩水,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51639065/

相关文章:

php - 很多人访问网站会导致数据库过载吗?

java - 反射的哪些部分表现不佳?

javascript - ".findOneAndUpdate()"未正确更新数据库(Mongodb 和 Node.js)

database - 如何从Typeorm中的连接实体中仅选择单个/多个字段

php - 如何在 Laravel DB::insert 中返回我的 OUTPUT 子句

mysql - 如何在mysql的HAVING子句中有一个AND条件?

python - 迭代二维数组/列表只有一个(Python)

php - 完整实体进程无法应用进程槽

nosql - 其他具有集合数据类型的数据库,如 Redis

mongodb - 是否可以在 MongoDB 之上实现多版本并发控制(MVCC)?