我有 10 mb 的数据库和这段代码:
cursor = mDatabase.query(CitySQLiteHelper.TABLE_CITIES, ALL_COLUMNS, null, null, null, null, "name DESC", "20");
if (cursor.getCount() > 0) {
//
}
执行在 if 语句处冻结大约 10 秒。我尝试了 getCount 和 moveToFirst - 它在两种情况下都会冻结。第一次调用后查询和对游标的所有调用(getString() 等)工作正常。为什么?
更新:架构
sqlite> .schema cities
CREATE TABLE cities (region text, name text, latitude float, longitude float);
sqlite> select count(*) from cities;
130070