SQL WHERE 句: 短絡評価?
SQL は WHERE 句のブール式で短絡評価を使用しますか? 簡単に言うと、これはデータベース固有です。
ANSI SQL 2003 標準は、左から右の評価を推奨しています (「優先順位が形式や括弧によって決定されない場合、式の効果的な評価は通常、左から右に実行されます。」) が、重要な点が追加されています。修飾: 「式が実際に左から右に評価されるかどうか、特にオペランドや演算子で条件が発生する可能性がある場合、または式のすべての部分を完全に評価せずに式の結果を決定できるかどうかは、実装に依存します。表現。"
これは、多くのデータベースがパフォーマンスの最適化 (全体的な結果がすでにわかっている場合に不必要な計算を回避する) のために短絡評価を利用することが可能であり、多くの場合実行しているものの、それが普遍的に保証されているわけではないことを意味します。 .
データベース固有の動作:
optimizer_switch
を通じてある程度の制御を提供します。結論:
SQL の WHERE 句での短絡はパフォーマンスの向上につながる可能性がありますが、開発者は正確さのために短絡に依存しないようにする必要があります。実際の評価順序は、データベース システムの実装と最適化戦略によって最終的に決定されます。 常に明確で明確な SQL を作成し、異なるデータベース システム間で短絡評価が一貫して期待どおりに動作すると想定しないでください。
以上がSQL の WHERE 句は短絡評価を使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。