在子查询或主查询中,哪个更可取?

Where in sub-query or in main query, what is preferable?

简化示例 1:

SELECT * FROM (
    SELECT x, y, z FROM table1
    WHERE x = 'test'
    -- union, etc, etc, complicated stuff...
) AS t
-- union, etc, etc, complicated stuff...

简化示例 2:

SELECT * FROM (
    SELECT x, y, z FROM table1
    -- union, etc, etc, complicated stuff...
) AS t
-- union, etc, etc, complicated stuff...
WHERE x = 'test'

以上哪个更受欢迎?性能更高吗?是因为其他原因推荐?在进行合并和类似操作之前过滤结果 "early" 是否有帮助?谢谢

在MySQL中你肯定想要子查询中的过滤条件。 MySQL 实现子查询。子查询越小查询越快

此外,MySQL 或许可以为条件使用索引。