【发布时间】:2016-05-04 20:16:44
【问题描述】:
我有 2 个表 sl 和 sd。
如果可以的话,我想优化下面的查询
select sl.*, sd.* from sl join sd where sl.conf_id='blah' and sd.for_as=1
我的理解是首先执行笛卡尔积,然后进行过滤。
有没有办法先完成过滤?
【问题讨论】:
-
两张表有关系吗? ..如果是,在哪一列?
-
@scaisEdge 2 个表之间存在未包含在上述查询中的关系。实际查询是 2 个选择的联合,一个查询在相关列上具有内部连接,而后半部分在上面的问题中提到。我需要优化这一半。
-
My understanding is that the cartesian product is first performed and then filtering happens.不,mysql通常可以优化它,无论如何-检查执行计划以确认实际发生了什么 -
这个查询应该返回一个错误,抱怨缺少
ON。如果你真的需要交叉连接,MySQL 应该足够聪明,可以在连接之前应用 WHERE 条件。
标签: mysql sql query-optimization