12

質問は十分に明確である必要がありますが、代わりに使用することには利点がありますか

SELECT 1 FROM table ...

SELECT 1 FROM table ... LIMIT 1

4

1 に答える 1

19

テーブルに100万行あるとしましょう...

SELECT 1 FROM table ...

値を返します1、百万回...

SELECT 1 FROM table ... LIMIT 1

1値を1回返します。


編集

あなたは、EXISTS小切手に関して特に興味があると述べています。 最初の行が見つかった後に処理を停止します(これがこの場合よりも効率的でEXISTSある理由です)。したがって、これを念頭に置いて、これら2つのクエリの間に機能的な違いはありません。EXISTSIN

SELECT *
FROM tableA ta
WHERE EXISTS (
    SELECT 1
    FROM TableB tb
    WHERE tb.ID = ta.ID
);

SELECT *
FROM tableA ta
WHERE EXISTS (
    SELECT 1
    FROM TableB tb
    WHERE tb.ID = ta.ID
    LIMIT 1
);
于 2012-08-02T19:18:49.820 に答える