我有以下代码:
select
*
from
table_1
join
table_2
on
table_1.col1 = table_2.col1
where
table_2.col2 = 1
此查询有效,并为我提供了我期望的结果。现在我想优化这个查询。这个想法是我尝试在加入两个表之前减少第二个查询。换句话说,我认为“删除”行和加入较小的表应该比加入大表然后从它们中选择我需要的更快。我通过以下方式实现我的想法:
select
*
from
table_1
join
(
select
*
from
table_2
where
table_2.col2 = 1
)
on
table_1.col1 = table_2.col1
令人惊讶的是,第二个查询比第一个查询慢得多。我究竟做错了什么?