子查询与联接
我重构了我们从另一家公司继承的应用程序中的一个缓慢部分,以使用内部连接,而不是像以下这样的子查询:
WHERE id IN (SELECT id FROM ...)
重构查询运行速度大约快100倍。(~50秒~0.3)我预期会有改善,但谁能解释一下为什么这么剧烈?WHERE子句中使用的列都已编入索引。SQL是否在WHERE子句中每一行执行一次查询?
更新-解释结果:
不同之处在于“其中id in()”查询的第二部分-
2 DEPENDENT SUBQUERY submission_tags ref st_tag_id st_tag_id 4 const 2966 Using where
vs1索引行与联接:
SIMPLE s eq_ref PRIMARY PRIMARY 4 newsladder_production.st.submission_id 1 Using index
忽然笑
MYYA
相关分类