此语句效率不高,因为只有10个记录中的一个被选中,并且只有100个条目中的1个包含注释。具有嵌套SELECT的mysql语句 - 如何提高性能
我该怎么做才能改善它?
$query = "SELECT
A,B,C,
(SELECT COUNT(*)
FROM comments
WHERE comments.nid = header_file.nid)
as my_comment_count
FROM header_file
Where A = 'admin' "
编辑:即使没有发现评论我想要标题记录。
看起来更干净但不确定是否有任何性能提升。我也想包括记录,即使评论计数为零。如果我在where子句中找到匹配项,我宁愿挖掘注释文件。 – ernie 2010-04-22 11:02:22
我使用'Left Join',所以你得到'header_file'的所有行,也是那些没有评论的。您当前的解决方案确保仅为在“Where”子句中匹配的标题读取注释。通过我的解决方案,优化器将决定哪种方式更好。 – 2010-04-22 11:32:37