查询:
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);
语句之前和之后的打印时间戳计算时间。
答案 0 :(得分:0)
你有多少条记录
您正在过滤类型和状态,而您的索引是在类型和位置上,因此您的索引部分有效,引擎仍然需要进行大量的表扫描。此外,在您过滤数据后,您将按照您没有索引的位置进行排序。类型,位置在这里没有多大帮助