低速我使用查詢上暗號查詢
"START a=node("+str(node1)+"),
b =node("+str(node2)+")
MATCH p=shortestPath(a-[:cooperate*..200]-b)
RETURN length(p)"
看到A和B之間的路徑。我有很多節點,所以當我運行查詢時,有時它運行得很快,有時運行緩慢。我使用neo4j 1.9社區。任何人都可以幫忙
低速我使用查詢上暗號查詢
"START a=node("+str(node1)+"),
b =node("+str(node2)+")
MATCH p=shortestPath(a-[:cooperate*..200]-b)
RETURN length(p)"
看到A和B之間的路徑。我有很多節點,所以當我運行查詢時,有時它運行得很快,有時運行緩慢。我使用neo4j 1.9社區。任何人都可以幫忙
查詢時間與搜索圖表的數量成正比。您的查詢允許進行非常深入的搜索,深度達到200.如果a。和b。非常接近,您不會搜索圖表的大部分內容,並且查詢將返回非常快。如果一個。和b。被200條邊分隔開來,你會搜索一個非常大的圖(可能是整個圖?),這對於大圖來說會慢很多。
圖表是否在兩個查詢之間發生變化,這兩個節點是否有可能在查詢之間彼此相關的不同位置結束?例如,如果您生成一些隨機數據來填充圖表?
謝謝!該圖不會改變,我的目標是計算許多節點之間的最短路徑以獲得平均路徑長度。但它有時速度很快,有時速度很慢。我想也許這是與jvm內存相關的東西... – user2234995 2013-04-12 01:43:53
你能描述一下你運行數據庫的硬件嗎?它是專用機器,VPS,您的個人筆記本電腦?還有哪些其他服務和流程正在運行? – holaSenor 2013-04-12 13:08:54
感謝您的回答!其實我應該使用*而不是200,因爲我無法定義搜索深度。我想也許這是jvm內存 – user2234995 2013-04-12 01:40:58