0

10000 レコードの user_profile テーブルがあり、レコードの半分が女性ユーザー (= 5000 女性ユーザー) であるとします。

クエリを送信すると、「性別 = '女性' の user_profile から年齢 (出生) を選択します」

年齢関数は何回実行されますか? 5000回か10000回?

4

2 に答える 2

1

5000回。WHERE 句は「女性」に一致しないものをすべて除外し、残りの結果で関数が呼び出されます。

実行順序は

  1. から
  2. どこ
  3. グループ化
  4. 持っている
  5. 選択する
  6. オーダーバイ

ご覧のとおり、結果の半分は WHERE で除外され、SELECT が完了すると 5000 レコードになります。

于 2013-09-06T03:20:06.030 に答える
1

データベースの実装に応じて。SQL は製品ではなく ANSI 標準であることを忘れないでください。標準では、入力 (SQL ステートメント) と出力のみが指定されています。

ほとんどのデータベースでは、不要な行で計算能力を浪費するのはばかげているため、5000 倍になります。

最初に選択 (where 句) を行い、次に射影 (select 句) を行います。

于 2013-09-06T03:21:54.070 に答える