我有一个 iOS 应用程序,有一个包含 1500 条记录的表。
我正在使用 FMDB,调用以下表单:
FMDatabase *db = ...
[db executeQuery:@"select num from a where b = ?", 6];
表“a”在“b”上有一个索引。
这在模拟器中运行良好,但在 iPad1 上需要很长时间。它会消耗内存,直到应用程序被杀死。Instruments 说它卡在“sqlite3_prepare_v2”中。
原始查询也有一个“order by”子句。我已将其删除以进行测试。我什至可以完全删除 where 子句,它仍然以这种方式运行。
有什么想法可能是错的吗?
在此之前,其他查询正在运行。我之前曾从不同的线程访问过数据库,但没有任何其他线程正在进行访问。我曾以为我可能有一个悬空交易,但事实也并非如此。