哪一个更有效率?
LEFT JOIN cscart_seo_names seo
ON p.product_id = seo.object_id AND seo.type = 'p'或
LEFT JOIN (
SELECT seo.object_id, seo.name
FROM cscart_seo_names seo
WHERE seo.type = 'p'
) seo
ON p.product_id = seo.object_id发布于 2013-09-21 12:20:38
检查效率的唯一可靠方法是检查实际的执行计划。请注意,执行顺序与表在查询中出现的顺序不同。
在这种情况下(假设它不是更大查询的一部分),我非常确定优化器将为您的查询的两个版本选择相同的计划……
发布于 2013-09-21 11:50:19
联接可以创建更适合您的查询的执行计划,并且可以预测应该加载哪些数据来处理并节省时间,这与子查询不同,子查询将运行所有查询并加载所有数据来进行处理。
子查询的好处是它们比连接更具可读性:这就是为什么大多数SQL新手更喜欢它们;这是一种简单的方法;但是当谈到性能时,连接在大多数情况下都更好,尽管它们也不难读。
https://stackoverflow.com/questions/18928666
复制相似问题