2017-02-17 23 views
0

考慮網絡調用和查詢處理時間是它更好地從一個頂點獲得一些屬性或讓整個頂點小鬼

1)時這些查詢的成本效益

g.V().has('personId','1234') 
=> V[4232] 

2)

g.V().has('personId','1234').values('name','age') 
=> chris 
=> 24 

3)

g.V().has('personId','1234').valueMap('name','age') 
    => [name:[chris],age:[24]] 

4)

g.V().has('personId','1234').properties('name','age') 
     => vp[name->chris 
     =>vp[age->24] 

並得到整個頂點花費了我們更多的網絡帶寬。由於查詢處理很快完成,我通常會獲得頂點

回答

2

最便宜的將是選項二和三。返回Element,這將是一個Vertex,Edge,VertexProperty將比返回單個結果或Map或結果更昂貴。甚至下面是比返回整個Element不太昂貴:

g.V(1).valueMap(true) 

,其從數據視角是基本相同g.V(1)

基本規則最終沒有像SQL那麼不同。您可能不會執行SELECT * FROM table,也不應該返回元素中的所有數據 - 只檢索您需要的數據。

+0

非常感謝Stephen,雖然我覺得一樣,但是我懷疑valueMap()會比其他人花費更多的處理時間來將數據轉換爲地圖 –

相關問題