Amr*_*awy 16 sql t-sql performance sql-server-2005
如果表格包含超过700,000行,则确定项目是否存在的性能最佳
if (Select count(id) from Registeration where email='email@w.cn') > 0
print 'Exist'
else
print 'Not Exist'
Run Code Online (Sandbox Code Playgroud)
要么
if Exists(Select id from Registeration where email='email@w.cn')
print 'Exist'
else
print 'Not Exist'
Run Code Online (Sandbox Code Playgroud)
gbn*_*gbn 28
永远存在
编辑,要清楚
当然,在这种情况下,如果电子邮件列是唯一的并且已编制索引,则它将关闭.
通常,EXISTS将使用更少的资源,也更正确.你正在寻找存在的行,而不是"大于零",即使它们是相同的
Edit2:在EXISTS中,你可以使用NULL,1,ID,甚至是1/0:它没有被检查......
2011年5月21日编辑:
看起来这在SQL Server 2005+中进行了优化,因此在这种情况下COUNT现在与EXISTS相同