SQLite的简单select语句需要15秒才能获取17条记录

时间:2017-01-28 15:12:49

标签: android performance sqlite android-sqlite

查询:

select Name, id, Status, position,AId, Type from Building where Status != 0 and type = 0 order by Position

此查询在PC上的SQLite浏览器上只需1分钟,但同样的查询大约需要15秒才能在Android设备上获取17条记录。

我使用了以下索引

create index B_type_position on building(type,position ASC)

并解释查询显示优化器使用它仍然需要花费太多时间来获取记录。

根据db.rawQuery(SQL,null);语句之前和之后的打印时间戳计算时间。

1 个答案:

答案 0 :(得分:0)

你有多少条记录

您正在过滤类型和状态,而您的索引是在类型和位置上,因此您的索引部分有效,引擎仍然需要进行大量的表扫描。此外,在您过滤数据后,您将按照您没有索引的位置进行排序。类型,位置在这里没有多大帮助