OrientDB查询太慢

OrientDB查询太慢,orientdb,orientdb-2.1,Orientdb,Orientdb 2.1,OrientDB v2.1.1, 我有两个类:NOrder和NPassenger,关系1:n,所以NOrder有一个名为“乘客”的文件,其类型是linklist 我有两个字段(NOrder order_id,NPassenger.Name)索引已建立 诺德公爵伯爵是三百万 我解释这些疑问: 1)select from NOrder where passengers contains(name = 'xxx') why this query not involved index . 2)

OrientDB v2.1.1, 我有两个类:NOrder和NPassenger,关系1:n,所以NOrder有一个名为“乘客”的文件,其类型是linklist

我有两个字段(NOrder order_id,NPassenger.Name)索引已建立

诺德公爵伯爵是三百万

我解释这些疑问:

 1)select from NOrder where passengers contains(name = 'xxx')
  why this query not involved index .

 2)select from NOrder where 'xxx' in passengers.name
  this query involved indexeses 
此查询花费120秒


谢谢

我尝试过这种结构

create class NPassenger
create property NPassenger.name String
create index NPassenger.name on NPassenger (name) NOTUNIQUE_HASH_INDEX

create class NOrder 
create property NOrder.order_id String
create property NOrder.passengers linklist NPassenger
create index NOrder.order_id on NOrder (order_id) UNIQUE_HASH_INDEX

insert into NPassenger(name) values ("xxx")  // 12:0
insert into NPassenger(name) values ("Alessandro")  //12:1

insert into NOrder(order_id,passengers) values ("order 1",[12:0])
insert into NOrder(order_id,passengers) values ("order 2",[12:1])
问题1

explain select from NOrder where passengers contains(name = 'xxx')

问题2

explain select from NOrder where 'xxx' in passengers.name

这两个查询都不使用索引,因为类目标是NOrder

更新

现在我有50002诺德和50002纳森格。 如果我执行查询

explain select from NOrder where passengers contains(姓名='xxx')

我明白了

这是因为没有使用name字段上的索引(因为目标类是Norder类),然后对Norder类的所有50002条记录进行搜索

如果我使用查询

explain select from NPassenger where name = "xxx"


之所以使用索引NPassenger.name,是因为目标类是NPassenger

您能否发布“explain select from NOrder where'xxx'in passengers.name”的结果?如果数据量太小,我解释这些查询,有以下提示:[“查询”从NOrder中选择,其中乘客中的“xxx”。姓名“获取了50000多条记录:为了加快执行速度,创建索引或将查询更改为使用现有索引”],为什么查询速度如此缓慢?
explain select from NPassenger where name = "xxx"