当前位置:  开发笔记 > 编程语言 > 正文

LEFT JOIN与多个SELECT语句

如何解决《LEFTJOIN与多个SELECT语句》经验,为你挑选了2个好方法。

我正在研究其他人的PHP代码并一遍又一遍地看到这种模式:

(伪代码)

result = SELECT blah1, blah2, foreign_key FROM foo WHERE key=bar

if foreign_key > 0  
  other_result = SELECT something FROM foo2 WHERE key=foreign_key  
end

如果另一个表中没有相关的行,代码需要分支,但是通过在单个SELECT语句中执行LEFT JOIN不能更好地完成此操作吗?我错过了一些性能优势吗?便携性问题?或者我只是在挑剔?



1> Mike..:

这绝对是错误的.你无缘无故地第二次越过电线.数据库在他们的问题空间非常快.连接表就是其中之一,你会看到更多的性能从第二个查询到连接的性能下降.除非您的表空间是数亿条记录,否则这不是一个好主意.



2> staticsan..:

没有足够的信息来真正回答这个问题.我一直致力于减少查询计数的应用程序,原因之一是由于其他原因而增加了查询计数,这些都提高了性能.在同一个应用程序中!

对于表大小,数据库配置以及查询外表的频率的某些组合,执行这两个查询可能比LEFT JOIN快得多.但经验和测试是唯一可以告诉你的.具有中等大小表的MySQL似乎对此很容易接受,IME.在一个表上执行三个查询通常比一个查询加入三个查询要快得多.我已经看到了一个数量级的加速比.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有