一尘不染

SQLite Select语句的更好性能

sql

我正在开发一个Iphone App,用户可以在其中输入任何字符串到搜索栏中,然后按搜索按钮。之后,将出现结果列表。

在我的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];

有什么好的方法可以增强在所有列中搜索部分字符串的性能?

谢谢


阅读 182

收藏
2021-05-23

共1个答案

一尘不染

您需要全文本搜索,而SQLite本身不支持此功能。我没有第三方支持的任何经验。

2021-05-23