2017-08-01 59 views
2

我需要匹配CSV中行的兩個特定節點。這裏是一個示例CSV塊: Example csv匹配兩個單獨節點的最有效方法

基本上,我需要連接每對名稱。它是我的暗號查詢更是這樣的:

LOAD CSV WITH HEADERS FROM "file.csv" AS row 
MATCH (P1:Person {name:row.name1}),(P2:Person {name:row.name2}) 
CREATE (P1)-[:knows]-(P2) 

或本:

LOAD CSV WITH HEADERS FROM "file.csv" AS row 
MATCH (P1:Person),(P2:Person) WHERE P1.name = row.name1 AND P2.name = row.name2 
CREATE (P1)-[:knows]-(P2) 

他們似乎都在非常小的(約100點)的數據同樣出色的工作,但是這將是對大量數據更快?是否有重大差異?

+0

他們幾乎肯定是相同的,但你可以看到自己使用'PROFILE'。 –

+0

正如其他人所說,發出的計劃是相同的。要導入大量數據,必須在標籤和查找屬性上使用索引,就像使用LOAD CSV的定期提交一樣。 – InverseFalcon

回答

0

請看:

加載一個初始數據集:

CREATE (:Person {name:'Jon'}) 
CREATE (:Person {name:'Doe'}) 

查詢

PROFILE MATCH (person:Person {name:'Jon'}) RETURN person 

PROFILE MATCH (person:Person) WHERE person.name='Jon' RETURN person 

PROFILE結果是相同的:

PROFILE result

那就是:這兩個查詢是恰好在執行時是相同的。這兩個查詢都將被轉換爲相同的執行計劃。這些查詢在小數據量或大數據量上運行沒有區別。

相關問題