对于开发人员何时使用联接而不是子查询是否有经验法则还是相同的?
取决于RDBMS。您应该比较两个查询的执行计划。
根据我对Oracle 10和11的经验,执行计划始终是相同的。
问题内容: 我对子查询的性能/连接另一个表有一些疑问 这是我的SQL,现在这个东西可以运行大约一百万次或更多。我的问题是什么会更快? 如果我更改为() 或者 如果我将’HelpTable’添加到中并在中进行联接? edit1 好吧,此脚本仅运行与r个人一样多的人。 我的程序有2个模块,一个模块填充,另一个模块传输数据。该程序确实将2个数据库合并在一起,因此有时会使用相同的Key。 现在,我正在研究
问题内容: 我是一个老派的MySQL用户,并且始终喜欢子查询。但是如今,每个人都使用子查询,而我讨厌它。我不知道为什么 我缺乏理论知识来自行判断是否存在差异。子查询是否与a一样好,因此不必担心吗? 问题答案: 取自MySQL手册 (13.2.10.11将子查询重写为Joins): LEFT [OUTER] JOIN可以比同等子查询更快,因为服务器可能可以更好地对其进行优化-这不仅限于MySQL S
问题内容: 我重构了从另一家公司继承来的应用程序的慢速部分,以使用内部联接而不是子查询,例如: 重构查询的运行速度大约快100倍。 (约50秒,约0.3秒)我期望有所改善,但是谁能解释为什么如此剧烈?where子句中使用的列均已建立索引。SQL是否在where子句中每行执行一次查询? 更新 -说明结果: 区别在于查询“(id)in()”的第二部分- vs 1带有连接的索引行: 问题答案: “相关子
问题内容: 我重构了从另一家公司继承来的应用程序的慢速部分,以使用内部联接而不是子查询,例如: 重构后的查询运行速度提高了约100倍。 (约50秒,约0.3秒),我期望有所改善,但谁能解释为什么如此剧烈?where子句中使用的列均已建立索引。SQL是否在where子句中每行执行一次查询? 更新 -说明结果: 区别在于“(())中的id”查询的第二部分- vs 1带有连接的索引行: 问题答案: “相
我只想检查一下QueryDSL版本3.1.1。-是否仍然不可能与子查询连接,就像这里的答案所写的:JPQL/querydsl:join subquery and get aliased column
问题内容: 我想知道,是否可以使用PostgreSQL将查询结果与自身连接? 问题答案: 您可以使用WITH来做到这一点: 或者通过创建一个包含查询的VIEW并加入该查询: 还是蛮力的方法:两次键入子查询: