使用 cursor.getCount() 获取计数或在 SQL 子句上使用 COUNT 执行 rawQuery?
Posted
技术标签:
【中文标题】使用 cursor.getCount() 获取计数或在 SQL 子句上使用 COUNT 执行 rawQuery?【英文标题】:Get count with cursor.getCount() or to execute a rawQuery with a COUNT on a SQL clause? 【发布时间】:2012-01-25 10:29:52 【问题描述】:什么在内存效率方面会更好,或者在 android 和 SQLite 上具有最佳的整体性能,使用 cursor.getCount() 获取记录计数或在普通 SQL 子句上使用 COUNT 执行 rawQuery(并使用cursor.getInt(0) 稍后获取返回的计数)?
注意:我没有使用结果,我只是想要计数。
【问题讨论】:
【参考方案1】:如果您之后使用查询的结果,那么最好的方法当然是执行cursor.getCount()
这比执行 2 个查询,一个获取计数,一个获取结果要快
编辑:
如果您不使用结果,那么 rawQuery 会更快,因为您只从数据库中获取一列而不是多列。另外,您为什么要浪费资源来执行查询而不使用其结果?
【讨论】:
哦,不。我忘了说我没有使用结果,在这种情况下,我只是对计数本身感兴趣。我会解决我的问题。 好的,谢谢。我只想要计数的原因是我将用户的相关记录显示为应用程序上自定义选项卡上的徽章。想想电子邮件应用程序图标上的徽章。所以我得到了最喜欢的计数,或者与当前登录用户相关的其他记录,我不需要记录,只需要计数。以上是关于使用 cursor.getCount() 获取计数或在 SQL 子句上使用 COUNT 执行 rawQuery?的主要内容,如果未能解决你的问题,请参考以下文章