如果表格包含超过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相同