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 是一个具有日期数据类型的属性。 在本地日期上也创建了一个索引。
从概念上讲,这两个查询之间有什么区别?在第一个场景中,我们在 RDBMS 世界中创建所谓的内联 View ,然后在内联 View 中的记录上放置过滤器。我们假设它必须在内部从数据库中获取所有记录,然后在内存中进行过滤。 在第二个查询中,直接过滤数据并使用索引。
最佳答案
不同之处在于,在第一个查询中未使用索引。 因此它会对类 sitedata 进行完整扫描并应用过滤器
引擎无法使用索引,因为查询的目标是嵌套查询, 因此它在内存中应用过滤时评估嵌套查询,然后评估外部查询
关于sql - 新手: OrientDB Basic SQL Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27962738/