Select 存在与计数

Select exists vs count

我正在使用 Sqlite-net-pcl。我需要哪个查询更好用。 如果至少有一条记录,我正在 table 中搜索。

第一次查询

Select exists(Select 1 from invnentory where itemname='box2')

第二次查询

Select count(*) from inventory where itemname='box2'

两个查询都正常。但是哪种方法是 sqlite-net-pcl 的最佳方法?

这个查询:

Select count(*) from inventory where itemname = 'box2'

通常必须进行完整的 table 扫描以达到 return 满足 WHERE 子句中条件的行数。

但是这个:

Select exists(Select 1 from invnentory where itemname='box2')

将 return 一旦找到满足条件的第一行,并且仅当没有这样的行时才会进行完整 table 扫描。

所以EXISTS应该表现更好。