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
应该表现更好。
我正在使用 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
应该表现更好。