Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何估算ArangoDB count函数的执行时间_Arangodb_Aql - Fatal编程技术网

如何估算ArangoDB count函数的执行时间

如何估算ArangoDB count函数的执行时间,arangodb,aql,Arangodb,Aql,我正在考虑将ArangoDB用于我的一个新项目,但我一直无法找到关于其可扩展性的很多信息 具体来说,我想了解一些有关计数函数的信息。是否有可靠的方法(可能是公式)来估计计算集合中与简单布尔值匹配的文档数所需的时间 集合中的所有文档将具有相同的字段,但值不同。我如何确定数亿份文档需要多长时间?只需创建一个集合用户并根据需要插入任意数量的随机文档 FOR i IN 1..1100000 INSERT { name: CONCAT("test", i), year: 1970 + FLOO

我正在考虑将ArangoDB用于我的一个新项目,但我一直无法找到关于其可扩展性的很多信息

具体来说,我想了解一些有关计数函数的信息。是否有可靠的方法(可能是公式)来估计计算集合中与简单布尔值匹配的文档数所需的时间


集合中的所有文档将具有相同的字段,但值不同。我如何确定数亿份文档需要多长时间?

只需创建一个集合
用户
并根据需要插入任意数量的随机文档

FOR i IN 1..1100000
INSERT { 
  name: CONCAT("test", i), 
  year: 1970 + FLOOR(RAND() * 55),
  gender: i % 2 == 0 ? 'male' : 'female'  
} IN users
然后进行计数:

FOR user IN users
  FILTER user.gender == 'male'
  COLLECT WITH COUNT INTO number
RETURN { 
  number: number 
}
如果在生产中使用此查询,请确保也添加索引。在我的机器上,它将执行时间缩短了100倍以上(0.043秒/1.1mio文档)

请使用EXPLAIN检查您的查询,以进一步估计执行的“成本”

Query string:
 FOR user IN users
   FILTER user.gender == 'male'
   COLLECT WITH COUNT INTO number
   RETURN { 
     number: number 
   }

Execution plan:
 Id   NodeType            Est.   Comment
  1   SingletonNode          1   * ROOT
  8   IndexRangeNode    550001     - FOR user IN users   /* hash index scan */
  5   AggregateNode          1       - COLLECT  WITH COUNT INTO number   /* sorted*/
  6   CalculationNode        1       - LET #4 = { "number" : number }   /* simple expression */
  7   ReturnNode             1       - RETURN #4

Indexes used:
 Id   Type   Collection   Unique   Sparse   Selectivity Est.   Fields     Ranges
  8   hash   users        false    false              0.00 %   `gender`   [ `gender` == "male" ]

Optimization rules applied:
 Id   RuleName
  1   use-index-range
  2   remove-filter-covered-by-index

只需创建一个集合
users
,并根据需要插入任意数量的随机文档

FOR i IN 1..1100000
INSERT { 
  name: CONCAT("test", i), 
  year: 1970 + FLOOR(RAND() * 55),
  gender: i % 2 == 0 ? 'male' : 'female'  
} IN users
然后进行计数:

FOR user IN users
  FILTER user.gender == 'male'
  COLLECT WITH COUNT INTO number
RETURN { 
  number: number 
}
如果在生产中使用此查询,请确保也添加索引。在我的机器上,它将执行时间缩短了100倍以上(0.043秒/1.1mio文档)

请使用EXPLAIN检查您的查询,以进一步估计执行的“成本”

Query string:
 FOR user IN users
   FILTER user.gender == 'male'
   COLLECT WITH COUNT INTO number
   RETURN { 
     number: number 
   }

Execution plan:
 Id   NodeType            Est.   Comment
  1   SingletonNode          1   * ROOT
  8   IndexRangeNode    550001     - FOR user IN users   /* hash index scan */
  5   AggregateNode          1       - COLLECT  WITH COUNT INTO number   /* sorted*/
  6   CalculationNode        1       - LET #4 = { "number" : number }   /* simple expression */
  7   ReturnNode             1       - RETURN #4

Indexes used:
 Id   Type   Collection   Unique   Sparse   Selectivity Est.   Fields     Ranges
  8   hash   users        false    false              0.00 %   `gender`   [ `gender` == "male" ]

Optimization rules applied:
 Id   RuleName
  1   use-index-range
  2   remove-filter-covered-by-index

只需创建一个集合
users
,并根据需要插入任意数量的随机文档

FOR i IN 1..1100000
INSERT { 
  name: CONCAT("test", i), 
  year: 1970 + FLOOR(RAND() * 55),
  gender: i % 2 == 0 ? 'male' : 'female'  
} IN users
然后进行计数:

FOR user IN users
  FILTER user.gender == 'male'
  COLLECT WITH COUNT INTO number
RETURN { 
  number: number 
}
如果在生产中使用此查询,请确保也添加索引。在我的机器上,它将执行时间缩短了100倍以上(0.043秒/1.1mio文档)

请使用EXPLAIN检查您的查询,以进一步估计执行的“成本”

Query string:
 FOR user IN users
   FILTER user.gender == 'male'
   COLLECT WITH COUNT INTO number
   RETURN { 
     number: number 
   }

Execution plan:
 Id   NodeType            Est.   Comment
  1   SingletonNode          1   * ROOT
  8   IndexRangeNode    550001     - FOR user IN users   /* hash index scan */
  5   AggregateNode          1       - COLLECT  WITH COUNT INTO number   /* sorted*/
  6   CalculationNode        1       - LET #4 = { "number" : number }   /* simple expression */
  7   ReturnNode             1       - RETURN #4

Indexes used:
 Id   Type   Collection   Unique   Sparse   Selectivity Est.   Fields     Ranges
  8   hash   users        false    false              0.00 %   `gender`   [ `gender` == "male" ]

Optimization rules applied:
 Id   RuleName
  1   use-index-range
  2   remove-filter-covered-by-index

只需创建一个集合
users
,并根据需要插入任意数量的随机文档

FOR i IN 1..1100000
INSERT { 
  name: CONCAT("test", i), 
  year: 1970 + FLOOR(RAND() * 55),
  gender: i % 2 == 0 ? 'male' : 'female'  
} IN users
然后进行计数:

FOR user IN users
  FILTER user.gender == 'male'
  COLLECT WITH COUNT INTO number
RETURN { 
  number: number 
}
如果在生产中使用此查询,请确保也添加索引。在我的机器上,它将执行时间缩短了100倍以上(0.043秒/1.1mio文档)

请使用EXPLAIN检查您的查询,以进一步估计执行的“成本”

Query string:
 FOR user IN users
   FILTER user.gender == 'male'
   COLLECT WITH COUNT INTO number
   RETURN { 
     number: number 
   }

Execution plan:
 Id   NodeType            Est.   Comment
  1   SingletonNode          1   * ROOT
  8   IndexRangeNode    550001     - FOR user IN users   /* hash index scan */
  5   AggregateNode          1       - COLLECT  WITH COUNT INTO number   /* sorted*/
  6   CalculationNode        1       - LET #4 = { "number" : number }   /* simple expression */
  7   ReturnNode             1       - RETURN #4

Indexes used:
 Id   Type   Collection   Unique   Sparse   Selectivity Est.   Fields     Ranges
  8   hash   users        false    false              0.00 %   `gender`   [ `gender` == "male" ]

Optimization rules applied:
 Id   RuleName
  1   use-index-range
  2   remove-filter-covered-by-index

做吧,数一数……做吧,数一数……做吧,数一数……做吧,数一数。。。