10000 レコードの user_profile テーブルがあり、レコードの半分が女性ユーザー (= 5000 女性ユーザー) であるとします。
クエリを送信すると、「性別 = '女性' の user_profile から年齢 (出生) を選択します」
年齢関数は何回実行されますか? 5000回か10000回?
10000 レコードの user_profile テーブルがあり、レコードの半分が女性ユーザー (= 5000 女性ユーザー) であるとします。
クエリを送信すると、「性別 = '女性' の user_profile から年齢 (出生) を選択します」
年齢関数は何回実行されますか? 5000回か10000回?
5000回。WHERE 句は「女性」に一致しないものをすべて除外し、残りの結果で関数が呼び出されます。
実行順序は
ご覧のとおり、結果の半分は WHERE で除外され、SELECT が完了すると 5000 レコードになります。
データベースの実装に応じて。SQL は製品ではなく ANSI 標準であることを忘れないでください。標準では、入力 (SQL ステートメント) と出力のみが指定されています。
ほとんどのデータベースでは、不要な行で計算能力を浪費するのはばかげているため、5000 倍になります。
最初に選択 (where 句) を行い、次に射影 (select 句) を行います。