我知道对下面的2个查询做一个解释计划会产生相同的成本,但是数据库会评估OR
条件的两个部分,还是会在评估为{的第一个部分之后停止{1}}吗
true
交换存在的2个条件:
select 1 from dual where
exists (select 1 from small_table where col1 = 10)
or
exists (select 1 from big_table where col1 = 10);
假设其中一个子查询使用包含数百万条记录(select 1 from dual where
exists (select 1 from big_table where col1 = 10)
or
exists (select 1 from small_table where col1 = 10);
)的表,另一部分使用的表只有几百条记录(big_table
)。我知道我正在搜索的记录更可能位于small_table
,但有时可能会在small_table
中。在这种情况下,我希望首先使用big_table
订购OR
条件。如果这是java ...
small_table