i could be wrong, but i suspect it is because when you are querying the
index, the where clause is not filtering on the indexed field publishDate
itself instead on @rid which is not part of the index.
maybe you could try composite index on publishDate and @rid?
On Saturday, April 18, 2015 at 12:52:41 AM UTC+5:30, Herve Eichwald wrote:
>
> 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.