1
我有2個查詢中的Neo4jNeo4j的創建與個別報表
MERGE (f:Foo {id:1})
MERGE (b:Bar {id:1})
with f,b
FOREACH (i IN range(0,999) | create (f)-[:Qux]->(b));
新增2個標籤一對多關係比循環更慢,創建2個節點,設置2個屬性,創建1000間的關係,聲明39執行女士。
和
MERGE (f:Foo {id:1})
MERGE (b:Bar {id:1})
with f,b
CREATE (f) - [:Qux] -> (b)
CREATE (f) - [:Qux] -> (b)
... (1000 times)
CREATE (f) - [:Qux] -> (b)
新增2個標籤,創建2個節點,設置2個屬性,創建1000間的關係,在8301毫秒執行的語句。
爲什麼創建與語句的關係比使用循環慢得多?
我希望能夠一次創建多個關係,但由於我想在每個個人關係中包含數據,所以循環不合適。我怎麼能這樣做,快速沒有使用循環。我假設我的語法有一些錯誤的假設。
注:我清除了圖運行的每個這些
那麼額外的時間基本上來自查詢解析? –
不僅僅是解析,執行結果代碼和內存更輕也會更快,因爲如果將查詢手動轉換爲Java,情況就會如此。規劃人員不會選擇代碼的迭代方式,因此您將失去優化的所有潛力。 –
好酷生病給我一個嘗試 –