你能估算一下CouchDB JavaScript视图的构建时间吗?

时间:2017-10-05 08:21:41

标签: couchdb-2.x

我有一个非常简单的视图来测试使用大约4400万个文档索引CouchDB数据库。视图如下所示:

function(doc) {
  if (doc.type_) { // I added a type_ property to each doc
    emit(doc.type_, 1);
  };
};

这个结果(使用_count reduce函数)是:

+---+----------+
| a |   154716 |
| b |   162353 |
| c |   170626 |
| d |   180893 |
| e |     7590 |
| f |     8419 |
| g | 44420508 |
+---+----------+

我在Windows 10(Surface Pro i7)上使用CouchDB 2.1并且索引总共花费了大约3个小时(我在索引期间关闭并打开了计算机,但我认为这不需要索引到从头开始重建。

上面写的视图必须“触摸”数据库中的每个文档。考虑到这一点,我如何对更复杂的视图如何执行进行某种定性估计?

即。既然索引已经触及了数据库中的每个文档,那么对每个文档的属性进行一些操作会大大影响性能吗?

在我看来,它不会 - 时间仍将被测量为O(n)ish。这是对的吗?

在这种情况下,我应该能够估计触及每个文档的视图索引应该花费与我上面写的简单视图相同的时间,+ / -

  1. 允许对'type_'属性执行每个文档的线性扫描需要多长时间(因此具有更多属性的文档会增加索引构建时间)
  2. 允许“发出”函数调用所需的步数;每个都需要对文档对象进行线性扫描和其他计算。即更长的文档==更长的索引构建时间。

0 个答案:

没有答案