【发布时间】:2015-01-15 11:47:08
【问题描述】:
OrientDB 1.7.10 版
我们正在运行以下两个查询,返回的记录数不同。
select from (select from sitedata ) where localdate='2014-09-24'
select from sitedata where localdate='2014-09-24'
第一个查询返回 6 条记录,而第二个查询只返回一条记录。
Sitedata 是一个顶点,而 localdate 是一个具有 Date 数据类型的属性。 在 localdate 上也创建了一个索引。
从概念上讲,这两个查询有什么区别?在第一个场景中,我们在 RDBMS 世界中创建所谓的内联视图,然后对内联视图中的记录进行过滤。我们假设它必须在内部从数据库中获取所有记录,然后在内存中进行过滤。 在第二个查询中,直接过滤数据并使用索引。
【问题讨论】:
-
更新:问题是因为索引。该索引是作为字典创建的,这导致了问题。更改索引解决了这个问题。