2016-01-28 51 views
1

我每天都會收到一份完整的csv文件給所有客戶。我需要插入/更新neo4j數據庫。所以我使用這個查詢:Neo4j - 性能差

我已經在hash字段上創建索引。

MERGE (XFEWYX:CUSTOMER_BSELLER {hash:'[email protected]'}) ON CREATE SET XFEWYX.hash = '[email protected]',XFEWYX.name = 'XYZ ',XFEWYX.birthdate = '1975-05-20T00:00:00',XFEWYX.id = '1770852',XFEWYX.nick = 'CLARISSA',XFEWYX.documentNumber = 'XYZ',XFEWYX.email = '[email protected]' with XFEWYX 
MERGE (WHHEKX:EMAIL {hash:'[email protected]'}) ON CREATE SET WHHEKX.hash = '[email protected]',WHHEKX.email = '[email protected]' with XFEWYX,WHHEKX 
MERGE (JJKONT:DOCUMENT {hash:'06845078700'}) ON CREATE SET JJKONT.document = 'XYZ',JJKONT.hash = '06845078700' with XFEWYX,WHHEKX,JJKONT 
MERGE (MERUCB:PHONE {hash:'NoneNone'}) ON CREATE SET MERUCB.areaCode = 'None',MERUCB.hash = 'NoneNone',MERUCB.number = 'None' with XFEWYX,WHHEKX,JJKONT,MERUCB 
MERGE (BOORBT:PHONE {hash:'XYZ'}) ON CREATE SET BOORBT.areaCode = '21',BOORBT.hash = 'XYZ',BOORBT.number = 'XYZ' with XFEWYX,WHHEKX,JJKONT,MERUCB,BOORBT 
MERGE (XBLZNF:PHONE {hash:'XYZ'}) ON CREATE SET XBLZNF.areaCode = '21',XBLZNF.hash = 'XYZ',XBLZNF.number = 'XYZ' with XFEWYX,WHHEKX,JJKONT,MERUCB,BOORBT,XBLZNF 
MERGE (XFEWYX)-[:REGISTERED_WITH {optin:'false'}]->(WHHEKX) 
MERGE (XFEWYX)-[:DOCUMENT]->(JJKONT) 
MERGE (XFEWYX)-[:COMMERCIAL_PHONE]->(MERUCB) 
MERGE (XFEWYX)-[:PHONE]->(XBLZNF) 
MERGE (XFEWYX)-[:CELL_PHONE]->(BOORBT) 

有沒有人有另一種方法如何執行此查詢?

回答

1

我會嘗試使用PROFILE命令。您可以將LIMIT放在您的LOAD CSV(我假設您使用LOAD CSV)進行測試。

我也想看看這篇文章:

http://www.markhneedham.com/blog/2014/10/23/neo4j-cypher-avoiding-the-eager/

一些已經固定在最近版本的Neo4j的,但你有一個可怕的很多MERGE在那兒,所以你也許可以忍受將其中的一部分分開並不止一次處理您的CSV文件。