Have you profiled both queries and compared the plans? Sent from my iPhone
> On May 27, 2017, at 15:12, unrealadmin23 via Neo4j <[email protected]> > wrote: > > Yes, but in at my example, the performance dramatically changes with the > direction of the relationship. > This occurs when both Entities exist or not. > > Do you know why I am seeing this behavior ? > > >> On Saturday, 27 May 2017 08:51:34 UTC+1, Michael Hunger wrote: >> I presume you have a constraint on :Entity(name) >> >> Merge does match-or-create >> >> So it tries to find first and otherwise create >> >> Von meinem iPhone gesendet >> >>> Am 26.05.2017 um 12:16 schrieb unrealadmin23 via Neo4j >>> <[email protected]>: >>> >>> John, Michael, >>> >>> Thank you for your suggestions. >>> >>> Interestingly I found my problem. Consider these 2 examples: >>> >>> neo4j> MERGE (node_c:Entity { name:'spumante cricova' }) MERGE >>> (node_a:Entity { name:'romainian' }) WITH node_a, node_c CREATE UNIQUE >>> (node_a)-[:language]->(node_c); >>> 0 rows available after 2160 ms, consumed after another 0 ms >>> >>> neo4j> MERGE (node_c:Entity { name:'spumante cricova' }) MERGE >>> (node_a:Entity { name:'romainian' }) WITH node_a, node_c CREATE UNIQUE >>> (node_a)<-[:language]-(node_c); >>> 0 rows available after 28 ms, consumed after another 0 ms >>> >>> Both entries may either need to be created or may already exist - it >>> doesn't really matter. Either way I get consistent timings. >>> >>> Why is one much faster than the other ? >>> >>> Wayne >>> >>>> On Friday, 26 May 2017 00:44:43 UTC+1, John Singer wrote: >>>> Wayne - I have a python program that will automatically generate cypher >>>> merges reading data from CSV files. I think I can beat your ingest rate >>>> below. If you're interested contact me at www.singerlinks.com (see the >>>> contact page) >>>> >>>>> On Wednesday, May 24, 2017 at 6:54:18 AM UTC-5, [email protected] >>>>> wrote: >>>>> Hi Michael, >>>>> >>>>> Some of my work flows create very large amounts of cypher merge and >>>>> create unique operations - potentially millions of lines. >>>>> I break the master file into 50 smaller files, and cat these >>>>> concurrently to cypher-shell. Actually its not quite that easy as a create >>>>> smaller buckets before cat'ing them into cypher-shell due to limitations >>>>> of the shell's buffering. >>>>> I have good reason for using this approach, as the task is additive >>>>> with periodic updates and many cypher lines are created 'on the fly' due >>>>> to data dependencies. >>>>> >>>>> I am able to achieve an ingest rate of about about 500 lines of cypher >>>>> per sec using this approach - but its is still not as fast as I would >>>>> like. >>>>> Are there any tweaks that might improve this approach ? >>>>> >>>>> Thanks, Wayne >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Neo4j" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "Neo4j" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
