使用 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?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用图形 API 获取共享计数

我可以将方法中的变量传递给适配器中的文本视图吗?

使用 shell 脚本从文件中测试其余 web 服务时如何获取成功计数、失败计数和失败原因

使用 perf 获取事件计数取决于其他事件的发生

获取 C 中的进程性能计数器

如何获取每天的计数()