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相同

猜你在找的MsSQL相关文章