aql - How to approximate execution time of ArangoDB count function -
i considering using arangodb new project of mine, have been unable find information regarding scalability.
specifically, looking information regarding count function. there reliable way (perhaps formula) approximate how long take count number of documents in collection match simple boolean value?
all documents in collection have same fields, different values. how can determine how long take count several hundred million documents?
just create collection users
, insert many random documents need.
for in 1..1100000 insert { name: concat("test", i), year: 1970 + floor(rand() * 55), gender: % 2 == 0 ? 'male' : 'female' } in users
then count:
for user in users filter user.gender == 'male' collect count number return { number: number }
and if use query in production, make sure add index too. on machine reduces execution time factor > 100x (0.043 sec / 1.1mio documents).
check query explain further estimate how "expensive" execution be.
query string: user in users filter user.gender == 'male' collect count number return { number: number } execution plan: id nodetype est. comment 1 singletonnode 1 * root 8 indexrangenode 550001 - user in users /* hash index scan */ 5 aggregatenode 1 - collect count 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
Comments
Post a Comment