2016-01-28 62 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文件。