[英]Better performance in this two table query?
我正在尝试从sessionid遵循的用户那里检索博客的ID:
SELECT * FROM articles
WHERE id_usuario IN (SELECT toid FROM follows WHERE fromid = '$id')
这给了我预期的结果,但是即使行数很少,性能也很差。
加入我会更好吗?
您可以通过重写为以下内容来快速解决此问题:
SELECT * FROM articles WHERE id_usuario IN (SELECT toid FROM follows WHERE fromid = '$id' AND id_usuario = toid)
对于您的查询,MySQL将首先尝试实现外部查询(选择所有文章),然后基于内部查询进行过滤,这效率不高,不幸的是,它现在还不够聪明,以至于无法意识到应该将子查询转换为联接。
您可以通过上面要过滤的条件从内部表中引用外部表,从而为优化器提供所需的提示,如上所述。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.