sql >> データベース >  >> RDS >> Sqlserver

アイテムが存在するかどうかを確認するのに最適なものは何ですか:Count(ID)OR Exist(...) を選択しますか?

    常に存在します

    • COUNT はテーブルまたはインデックスをトラバースします:COUNT を要求しました
    • EXISTS は、行が見つかるとすぐに停止します

    明確にするために編集

    もちろん、この場合、メール列が一意であり、インデックス化されていれば、近いでしょう。

    一般に、EXISTS はより少ないリソースを使用し、より正確でもあります。同じであっても「ゼロ以上」ではなく、行の存在を探しています

    Edit2:EXISTS では、NULL、1、ID、または 1/0 を使用できます:チェックされません...

    2011 年 5 月 21 日編集:

    これは SQL Server 2005+ で最適化されたように見えるため、この場合、COUNT は EXISTS と同じになりました



    1. エポック番号をmysqlで人間が読める形式の日付に変換する

    2. パフォーマンスの驚きと仮定:カウントをオンに設定

    3. cronとパスワードのセキュリティによって起動されたMysqldump

    4. 特定のtable.columnを参照する外部キーを持ち、それらの外部キーの値を持つすべてのテーブルを見つけるにはどうすればよいですか?