这个“Where”条件会加速SQL查询吗

这个“Where”条件会加速SQL查询吗,sql,where-clause,Sql,Where Clause,我将进行一个复杂的for me SQL查询,该查询涉及到查找与采购订单行链接的发票价值和货物接收价值的总和,这是3个连接的表,可能还有更多的表以及各种日期过滤器等等。 在许多情况下,PO线路将达到一种状态,我知道我再也不用担心它们了。因此,我可以在我的PO行表中添加一个逻辑字段来显示这一点,并在执行过程中勾选相关行,然后在SQL中添加where条件以使其忽略它们 我想知道的是,在Select之前还是之后执行条件?因为如果它做所有的计算,然后只是过滤输出,我不想要它,因为这只是更多的时间/处理。然

我将进行一个复杂的for me SQL查询,该查询涉及到查找与采购订单行链接的发票价值和货物接收价值的总和,这是3个连接的表,可能还有更多的表以及各种日期过滤器等等。 在许多情况下,PO线路将达到一种状态,我知道我再也不用担心它们了。因此,我可以在我的PO行表中添加一个逻辑字段来显示这一点,并在执行过程中勾选相关行,然后在SQL中添加where条件以使其忽略它们

我想知道的是,在Select之前还是之后执行条件?因为如果它做所有的计算,然后只是过滤输出,我不想要它,因为这只是更多的时间/处理。然而,如果Where子句在进行任何计算之前过滤输入ie,那么它可能会非常节省时间

我知道你可以说‘试试看’,但不管我是否添加了该逻辑字段,都会对其他流程和报告产生影响,因此我希望在不花费太多时间构建测试的情况下,对其进行规划

因此,TL;DR:在SQL中,在Select之前在何处执行?或者换句话说,查询的输入或输出在哪里过滤

希望这是有意义的,我在这里还是个初学者

检查显示WHERE子句是在步骤2中计算的,而SELECT是在步骤5中计算的

因此WHERE会过滤,从而减少SELECT将处理的行数


我不完全确定这是否适用于所有常规的基于SQL的数据库引擎-该站点似乎并不局限于单个RDBMS-因此,任何关系数据库系统都有可能在不使用查询、数据库、示例数据和所需结果的情况下处理相同的问题,几乎没有信息可以用来制定答案。从逻辑上讲,WHERE子句过滤FROM子句结果。实际上,谁知道呢?请相信dbms优化器。