Sadly the ids i'm trying to add are not going to be necessarily unique,
hence why i'm using merge. I think i grasped what a constrant is, but i
cant say the same about indexes. So you are telling me that adding a
constraint on ids would make the query faster? Sorry about questions that
might sound stupid, but i'm fairly new to neo4j...

Il giorno gio 7 feb 2019, 18:59 Eve Freeman <eve.fre...@gmail.com> ha
scritto:

> One other note--if you know these are unique ids, you can avoid using
> merge, and just use create, which will be quicker still.
>
> On Thu, Feb 7, 2019 at 12:54 PM Eve Freeman <eve.fre...@gmail.com> wrote:
>
>> Well, what a merge will do is check whether something exists before it
>> creates it, "match or create". The match step will get linearly slower as
>> it has to scan larger and larger lists of nodes on a label. If you add an
>> index (at minimum), or unique constraint/node key (preferred, especially if
>> you require uniqueness and will eventually have concurrent requests of this
>> nature), it will be able to do the match step much quicker.
>>
>> On Thu, Feb 7, 2019 at 12:50 PM Andrea Balzoni <
>> andrea.balz...@keypartner.it> wrote:
>>
>>> Honestly i heard of those, but i'm not using any. I'm quite new to it,
>>> so i wasnt sure what their purpose is.
>>>
>>> Il giorno gio 7 feb 2019, 18:43 Eve Freeman <eve.fre...@gmail.com> ha
>>> scritto:
>>>
>>>> What's your schema? Do you have a unique constraint or index on the
>>>> labels + id you're merging on?
>>>>
>>>> Eve
>>>>
>>>> On Thu, Feb 7, 2019 at 12:23 PM <andrea.balz...@keypartner.it> wrote:
>>>>
>>>>> Hello everyone, i'm trying to MERGE thousands of nodes using UNWIND
>>>>> and apoc procedures (for a dynamic label creation) using Java Driver as
>>>>> follows:
>>>>>
>>>>>         String query =
>>>>>                 "UNWIND $nodes AS n " +
>>>>>                 "CALL apoc.merge.node([n.category], {id: n.id}, n)
>>>>> YIELD node RETURN node";
>>>>>         session.run( query, params );
>>>>>
>>>>>
>>>>> My database contains something like 150k nodes divided by 16 labels
>>>>> and 130k relationships of the same type. It worked fine so far, it never
>>>>> failed to deliver, but now that i'm trying to create something like 4k new
>>>>> nodes and 5k new relationships at once it took more than 30 minutes. I 
>>>>> feel
>>>>> like it should be way faster than this.
>>>>>
>>>>> Am i doing anything wrong? Is it really supposed to be this slow? Is
>>>>> there anything i can do to make this process smoother and to improve
>>>>> performances?
>>>>>
>>>>> Thanks in advance
>>>>>
>>>>> --
>>>>> 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 neo4j+unsubscr...@googlegroups.com.
>>>>> 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 neo4j+unsubscr...@googlegroups.com.
>>>> 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 neo4j+unsubscr...@googlegroups.com.
>>> 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 neo4j+unsubscr...@googlegroups.com.
> 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 neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to