Yes. You would need to add a constraint for each label + id combination.

On Thu, Feb 7, 2019 at 1:57 PM Andrea Balzoni <andrea.balz...@keypartner.it>
wrote:

> 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.
>

-- 
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