Closed
Description
My Environment
- ArangoDB Version: 3.12.0-NIGHTLY.20231219
- Deployment Mode: Single Server
- Deployment Strategy: Manual Start
- Infrastructure: own
- Operating System: Windows 10
- Total RAM in your machine: 32Gb
- Disks in use: SSD
Component, Query & Data
Affected feature: AQL query using web interface
AQL query (if applicable):
for v,e, path in 0..1 outbound 'nodes/2' edges
filter e._to == 'nodes/td_0'
return v._key
AQL explain and/or profile (if applicable):
Query String (91 chars, cacheable: false):
for v,e, path in 0..1 outbound 'nodes/2' edges
filter e._to == 'nodes/td_0'
return v._key
Execution plan:
Id NodeType Calls Par Items Filtered Runtime [s] Comment
1 SingletonNode 1 - 1 0 0.00002 * ROOT
2 TraversalNode 1 0 1 1004010 3.59838 - FOR v /* vertex (projections: `_key`) */, e /* edge (projections: `_from`, `_to`) */ IN 0..1 /* min..maxPathDepth */ OUTBOUND 'nodes/2' /* startnode */ edges /* order: dfs */
5 CalculationNode 1 0 1 0 0.00001 - LET #5 = v.`_key` /* attribute expression */
6 ReturnNode 1 - 1 0 0.00000 - RETURN #5
Indexes used:
By Name Type Collection Unique Sparse Cache Selectivity Fields Stored values Ranges
2 edge edge edges false false false 0.00 % [ `_from` ] [ ] base OUTBOUND
Traversals on graphs:
Id Depth Vertex collections Edge collections Options Filter / Prune Conditions
2 0..1 edges uniqueVertices: none, uniqueEdges: path, order: dfs FILTER (e.`_to` == "nodes/td_0")
Optimization rules applied:
Id Rule Name Id Rule Name Id Rule Name
1 move-calculations-up 4 move-filters-up-2 7 remove-unnecessary-calculations-2
2 move-filters-up 5 optimize-traversals 8 async-prefetch
3 move-calculations-up-2 6 remove-filter-covered-by-traversal
Query Statistics:
Writes Exec Writes Ign Doc. Lookups Scan Full Scan Index Cache Hits/Misses Filtered Peak Mem [b] Exec Time [s]
0 0 0 0 1004011 1 / 0 1004010 108134400 3.59872
Query Profile:
Query Stage Duration [s] Query Stage Duration [s] Query Stage Duration [s]
initializing 0.00000 loading collections 0.00001 instantiating executors 0.00008
parsing 0.00004 instantiating plan 0.00003 executing 3.59842
optimizing ast 0.00000 optimizing plan 0.00014 finalizing 0.00002
Problem:
Collection edges contains 1 millions. I graph from a node to 1millions edges with filter field _to == "nodes/td_0". It's only a result, but it takes 3.5s. I think Algorithmics graph and filter of Arango not good by field _to indexed but it works too slowly. Solr work it only 105ms.
Expected result: Can you explain to me why Arango work too slowly ?