我正在开发一个 Iphone 应用程序,用户可以在搜索栏中输入任何字符串并按下搜索按钮。之后应该会出现一个结果列表。
在我的 SQLite 中,我有四列 a、b、c、d。假设它们具有以下值:
Dataset 1:
a: code1
b: report1
c: description1_1
d: description1_2
Dataset 2:
a: code2
b: report2
c: description2_1
d: description2_2
因此,如果用户输入值:“1_1”,则由于 c 列,将选择第一个数据集。
如果用户输入值:“report”,则将选择第一和第二数据集。
由于我使用的数据库包含近 60,000 个数据集,搜索部分字符串确实会降低性能。
在所有 4 列上设置索引会使 SQLite 数据库的大小变得太大。
所以我根本没有使用索引。
我的选择语句如下所示:
NSString *sql = [NSString stringWithFormat:@"SELECT * FROM scode WHERE a LIKE '%@%@%@' OR c LIKE '%@%@%@' OR d LIKE '%@%@%@'", wildcard, searchBar.text, wildcard, wildcard, searchBar.text, wildcard, wildcard, searchBar.text, wildcard, wildcard, searchBar.text, wildcard];
有没有什么好的方法可以提高在所有列中搜索部分字符串的性能?
谢谢你和亲切的问候,
Daniel