钛appcelerator查询很慢

时间:2014-03-23 16:14:27

标签: sqlite indexing titanium

我有一个钛appcelerator查询,如下所示:

"select * from module where language_id = " + languageId + " order by id asc";

当我在我的Android驱动的钛应用程序上运行此查询时,当给定language_id的条目数量较少(例如,5)时,此查询会快速返回。

当条目数量更高 - 比如100 - 那么这个查询需要更长的时间(比如说更长一秒)。

我在桌子上使用了索引,如下所示:

CREATE INDEX "module_index" ON "module" ("language_id" ASC)

我使用firefox sqlite浏览器在表上创建了这个索引。应用程序肯定知道索引存在,因为如果在代码中我运行

db.execute("CREATE INDEX 'module_index' ON 'module' ('language_id' ASC)");

我收到一条错误消息,指出索引已经存在。我也尝试过运行

db.execute("REINDEX 'main'.'module_index'");

但这似乎并没有缓解这个问题。

这里有什么问题 - 我假设nexus 4上的索引表能够很快检索到100个左右的结果,但事实并非如此。我的索引是不正确的,还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

这并没有真正解决我的问题 - 因为最终,正如CL指出的那样,正是代码列出了问题的条目。

Titanium的TableView并不是非常高效。我已经switched to using ListView.了。这要快得多,并解决了我的问题。