OrientDB同时使用MATCH和SELECT时的查询性能问题

Query performance issues when using MATCH and SELECT together OrientDB

我在 OrientDB 中遇到查询问题。

SELECT FROM (
   MATCH 
      {class: article, as: article}.in('authorOf'){as: author} 
   RETURN article, author
) ORDER BY createdAt desc SKIP 0 LIMIT 50

如您所见,我想获取最近 50 篇文章及其通讯作者。我面临的问题是,子查询首先遍历我所有的文章,然后将其传递给父级,然后进行过滤。这显然不是很有效,因为当我只需要50篇文章时,所有文章都加载到内存中。

有谁知道无需使用多个查询的更好方法。

你可以试试

select @rid as article,in('authorOf')[0] as author from article order by createdAt desc SKIP 0 LIMIT 50

有了这个,我的表现稍微好一些,但没有什么极端的。

根据 Luigi 的评论进行编辑

createdAt 属性 上创建索引:

CREATE INDEX article.createdAt ON article (createdAt) NOTUNIQUE

PS

我不确定您查询中的 order by 是否正常工作