sql – 最好检查项目是否存在:选择计数(ID)或存在(…)? - 代码日志

sql – 最好检查项目是否存在:选择计数(ID)或存在(…)?

如果表格包含超过70万行,则确定项目是否存在或不是特别的最佳性能是什么

if (Select count(id) from Registeration where email='email@w.cn') > 0
    print 'Exist'
else
    print 'Not Exist'

要么

if Exists(Select id from Registeration where email='email@w.cn') 
    print 'Exist'
else
    print 'Not Exist'
现在,永远

> COUNT将遍历表或索引:您询问了一个COUNT
> EXISTS会在找到一行后立即停止

编辑,要清楚

当然,在这种情况下,如果电子邮件列是唯一的并编入索引,它将会很接近。

一般来说,EXISTS将使用较少的资源,也更正确。你正在寻找一行的存在,而不是“超过零”,即使它们是一样的

Edit2:在EXISTS中,你可以使用NULL,1,ID,甚至是1/0:它没有被检查…

2011年5月21日编辑:

看起来这是在SQL Server 2005中进行了优化,因此在这种情况下,COUNT现在与EXISTS相同

http://stackoverflow.com/questions/3271455/whats-the-best-to-check-if-item-exist-or-not-select-countidor-exist

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:sql – 最好检查项目是否存在:选择计数(ID)或存在(…)?