在给定不同数据库,配置等的情况下,每个查询的潜在优缺点是什么?有没有一个人比另一个人更有效率?反之亦然?有没有更好的方法呢?你能解释一下原因吗?
查询1:
SELECT
*
FROM
table_a, table_b, table_c
WHERE
table_a.id = table_b.id AND
table_a.id = table_c.id AND
table_a.create_date > DATE('1998-01-01');
查询2:
SELECT
*
FROM
table_a
INNER JOIN table_b ON
table_a.id = table_b.id
INNER JOIN table_c ON
table_a.id = table_c.id
WHERE
table_a.create_date > DATE('1998-01-01');
答案 0 :(得分:2)
相同的查询,不同的SQL规范修订版。查询优化器应为这些查询计划提出相同的查询计划。
答案 1 :(得分:0)
不。我只是与一些同事共享一个庞大的,不堪重负的数据库,我正试图想出一些方法来获得更多处理器爆炸。我一直在网上寻找,但没有找到一些像这样的问题的好解释。
对不起听取作业-y。我想我花了太多年时间作为TA。
答案 2 :(得分:0)
实际上,我认为查询2更具可读性。想想当你点击查询一中的where子句时,你会说5,6或7个表。加入后可能会变得混乱。
至于表现,我不知道。我敢打赌,如果你去MySQL网站,那里会有信息 - 可能是连接的例子。
专业上,我只参与过一个项目。但这是一个很大的问题,他们总是遵循查询2的格式。这是使用Microsoft SQL Server。
答案 3 :(得分:-1)
我同意,这听起来有点像家庭作业!
如果不是家庭作业,那么我想最简单的答案就是可读性。
如前所述,两个查询都将生成相同的执行计划。如果是这种情况,那么您唯一需要担心的是可维护性。