Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite:getCount()还是DatabaseUtils?_Android_Sqlite_Database Design - Fatal编程技术网

Android SQLite:getCount()还是DatabaseUtils?

Android SQLite:getCount()还是DatabaseUtils?,android,sqlite,database-design,Android,Sqlite,Database Design,我试图测试sqlite数据库是否为空。我读过stackoverflow的文章,很多人建议使用rawQuery和getCount()方法。其他人建议使用DatabaseUtils.longForQuery和DatabaseUtils.queryNumEntries 我在寻找速度,因为数据库中的行数很大。我正在寻找快速测试,看看行数是否为零。如果不是,那是因为数据库中有1行或多行。是否有一种方法在识别出一行后中止计数,而不是对所有行进行计数?如果没有,对getCount和DatabaseUtils有

我试图测试sqlite数据库是否为空。我读过stackoverflow的文章,很多人建议使用rawQuery和getCount()方法。其他人建议使用DatabaseUtils.longForQuery和DatabaseUtils.queryNumEntries


我在寻找速度,因为数据库中的行数很大。我正在寻找快速测试,看看行数是否为零。如果不是,那是因为数据库中有1行或多行。是否有一种方法在识别出一行后中止计数,而不是对所有行进行计数?如果没有,对getCount和DatabaseUtils有什么想法?

sql查询
从表\u名称中选择COUNT(*)运行非常快

DatabaseUtils.queryNumEntries()
使用此方法。我会同意的


您可以运行自己的执行上述查询的
SQLiteDatabase.rawQuery()
。这也应该很好。

sql查询
从表\u name中选择COUNT(*)运行非常快

DatabaseUtils.queryNumEntries()
使用此方法。我会同意的

您可以运行自己的执行上述查询的
SQLiteDatabase.rawQuery()
。这也应该很好。

查询API级别11中添加的条目

long count=0;
Cursor cursor =  Database.DB.rawQuery("select count(*) from table;",null);
count=cursor.getLong(0);
在API级别11中添加的QueryNumerents

long count=0;
Cursor cursor =  Database.DB.rawQuery("select count(*) from table;",null);
count=cursor.getLong(0);


只需运行这两个程序并测量执行时间,它们之间应该不会有太大差异。谢谢,这是测试的好主意。我正在尝试通过设计来了解哪种方法在确定行数方面更优越。只需同时运行这两种方法并测量执行时间,它们应该不会有太大差异。谢谢,这是测试的好主意。我正在尝试学习哪种方法在确定行数方面优于设计。那么使用SELECT COUNT和rawQuery?像“Cursor mCursor=db.rawQuery(“从“+DATABASE_TABLE,null)”中选择COUNT(*)”,任何一种方法都应该有效:使用helper函数,或者编写自己的函数来执行相同的操作。确定。其他一些帖子建议使用“SELECT*FROM”。与您的“从中选择计数(*)相比,这有什么区别?
SELECT COUNT(*)
将比
SELECT*
和自己(或使用
Cursor.getCount()
计算条目)快得多
Count()
是一个sql函数:这是因为select*将对数据库行和列中的所有记录进行计数,而select Count(*)将只对一列进行计数吗?好的,那么将select Count与rawQuery一起使用吗?像“Cursor mCursor=db.rawQuery(“从“+DATABASE_TABLE,null)”中选择COUNT(*)”,任何一种方法都应该有效:使用helper函数,或者编写自己的函数来执行相同的操作。确定。其他一些帖子建议使用“SELECT*FROM”。与您的“从中选择计数(*)相比,这有什么区别?
SELECT COUNT(*)
将比
SELECT*
和自己(或使用
Cursor.getCount()
计算条目)快得多
Count()
是一个sql函数:这是因为select*将对数据库行和列中的所有记录进行计数,而select Count(*)将只对一列进行计数吗?我可以试试。if语句对moveToFirst()有什么作用?你可以忽略它,我以前写过它。好的。那么,您是否使用“长计数=0;”将计数设置为零?或者0是一个随计数而递增的变量数?不,0只是初始值。getLong(0)若要获取第行的第一列,即count(*)的值,我可以试试。if语句对moveToFirst()有什么作用?你可以忽略它,我以前写过它。好的。那么,您是否使用“长计数=0;”将计数设置为零?或者0是一个随计数递增的变量数?不,0只是初始值。getLong(0)获取行中第一列的值,该列的值为count(*)