join结合where子句的MySQL性能

join结合where子句的MySQL性能,mysql,sql,performance,Mysql,Sql,Performance,我目前收到了以下查询: SELECT location.street, location.zip, location.city, surface, price_buy, price_rental FROM buildings JOIN location ON building.location_id = location.location_id WHERE surface > 1000 期望的行为(在性能方面)是

我目前收到了以下查询:

SELECT 
    location.street, 
    location.zip, 
    location.city, 
    surface, 
    price_buy, 
    price_rental 
FROM buildings 
JOIN location 
    ON building.location_id = location.location_id 
WHERE surface > 1000
期望的行为(在性能方面)是:

  • 使用
    surface>1000从
    建筑物中过滤出所有结果
  • 检索与剩余的
    建筑物
    条目对应的
    位置
    数据

  • 我的查询目前正在这样做吗?从语法上讲,我希望
    WHERE
    必须在
    连接之前,但这可能吗?MySQL本身是否进行过任何优化,如果是,那么这种优化是否适用于所有SQL语言?

    如果您想要剩余的建筑,请将WHERE子句设置为相反的:
    surface首先,您的查询做的与您想要的相反-它正在过滤掉(即删除)表面为的建筑物可以显示一些表结构吗?看起来您的查询很准确。表名是building还是buildings?一处旧楼一处旧楼