sql - 新手: OrientDB Basic SQL Query

标签 sql orientdb

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/

相关文章:

sql - 存储过程中表变量的复合主键

sql - 检索每个组中的最后一条记录-MySQL

mysql - MySQL 中何时使用单引号、双引号和反引号

sql - 内部查询和连接

lazy-evaluation - 在 Orient-DB 中延迟执行查询

java - OrientDB使用gremlin-java中的索引吗?

mongodb - 多模型数据库与多个单独的数据库?

SQL触发器更新另一个表

javascript - OrientDB:在服务器端函数中访问查询结果数据

docker - orientdb kubernetes准备就绪探针错误:gzip:无效的 header