In fact the problem can be reproduced with a simpler case:

I have an article cluster with 400 000 records

select from Article where @rid not in [#13:250000] limit 1     takes 30 ms

while select from indexvaluesasc:Article.publishDate where @rid not in 
[#13:250000] limit 1   takes 400ms


Why?  It should just have to examine the first article and see that @rid 
are different, so why is it so slow?


Thanks


Le vendredi 17 avril 2015 11:57:34 UTC-4, Herve Eichwald a écrit :
>
> Hello guys,
>
> I would like to speed up the following use case, not sure how to do it:
> I have a Vertex of Users and a Vertex of Articles
> Users visit articles.
> I want to get the list of non yet visited articles for a given user.
> So I do:
> select @rid from indexvaluesdesc:Article.publishDate where @rid = (select 
> out('Visit') from User where guid = 'f60c1880-4c45-5efc-88cb-a54ed9a030bb') 
> limit 1
> which is rather slow (500ms) ti give me #13:0
>
> select out('Visit') from User where guid = 
> 'f60c1880-4c45-5efc-88cb-a54ed9a030bb' gives me 15 @rid and is fast
>
>
> Note that the article has been inserted in the cluster in the publishDate 
> desc order, so #13:0 is the latest.
> When I do:
> select @rid from Article where @rid not in (select out('Visit') from User 
> where guid = 'f60c1880-4c45-5efc-88cb-a54ed9a030bb') limit 1
> it gives me the response #13:0 in 17ms
>
> Yet I need the index as my articles won't always be inserted in this order 
> and the cluster can grow pretty big, (right now around 500 000 records) and 
> most articles won't have been visited for a user
>
>
> Any idea how I could do that?
>
>
> Thanks
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" 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.

Reply via email to