2015-11-06 47 views
0

如何查找Cypher查詢的複雜度?Cypher查詢複雜度

這是我的查詢:

確定一個暗號查詢的「成本」是使用 PROFILE關鍵字先於您的查詢的
MATCH (G1:FirstGraph) 
MATCH (G2:SecondGraph {IdRule:G1.IdRule}) 
WHERE G2.VRule<>G1.VRule 
MATCH (R:Rule{IdRule:G1.IdRule}) 
WITH G1,G2, count(R) as NbrOfVers 
MATCH (T:ResultNode) 
WITH T,sum(1-(tofloat(ABS(G2.VRule-G1.VRule))/NbrOfVers)) AS sum 
SET T.SubCorrel = sum 
+0

你是什麼意思的複雜性? –

+0

https://en.wikipedia.org/wiki/Analysis_of_algorithms – Kamelio

+0

我認爲你指的是算法的複雜性,但在這種情況下沒有意義,因爲它取決於查詢優化器的選擇。 –

回答

3

的一種方式。配置文件輸出爲您提供數據庫執行您的查詢所需的步驟,並且還會告訴您使用了多少數據庫命中。

一般來說,你想盡量減少數據庫命中的數量,因爲它們相對昂貴。

這將是很好,如果PROFILE(和EXPLAIN)可以輸出在big O notation查詢的computational complexity,但目前尚未完成。

+0

我試過配置文件。挺有趣的。但是,如何理解命中數以確定查詢的性能? – Kamelio

+0

配置文件輸出爲您提供每步點擊次數和點擊總數。 – cybersam

+0

謝謝;但是當我們可以說這個查詢很差或很好時。我如何解釋點擊次數? – Kamelio