1

我有一个至少有 100.000 行(SQLite)的表(rowID、name、familyName)。当 EditText 的文本发生更改(onTextChanged)时,我正在使用此代码查询我的表:

mySelectSql = "Select rowID from gamtable WHERE name GLOB ' " + searchEditText.getText().toString() + "*';";
Cursor c1 = db.rawQuery(mySelectSql, null);

rowID 是主键,name 是索引的!此代码仅在 EditText 中输入的第一个键上运行缓慢(~6000 毫秒),在第二个、第三个等上运行速度非常快。

我需要改进我的代码,以使第一个输入的密钥与第二个和第三个一样快...对这个问题有什么帮助吗?

4

1 回答 1

0

假设它实际上使用的是索引(听起来你已经检查过?),我会简单地限制结果的数量。在 UI 预览中使用最大数量的可显示结果。

SELECT rowID FROM gamtable WHERE name GLOB 'foo*' LIMIT 15;
于 2012-07-06T18:10:33.787 回答