我正在開發一個Iphone應用程序,用戶在任何字符串中鍵入搜索欄並按下搜索按鈕。之後應該出現結果列表。更好的SQLite選擇語句的性能
在我的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」那麼第一個數據集將因爲clumn的C中選擇。 如果用戶輸入「報告」的值,則將選擇第一個和第二個數據集。
因爲我使用的數據庫接近60.000數據集搜索部分字符串實際上是在殺死性能。
在所有4列設置索引將使SQLite數據庫的大小太大。 所以我根本沒有使用索引。
我的Select語句如下:
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];
是否有提高搜索中的所有列的部分串的性能沒有什麼好的辦法?
謝謝你,親切的問候,
丹尼爾
全文搜索絕對是他的追求,這一方面讓我感到困惑。 Sqlite有FTS3可用,但現在不啓用,不是嗎? – 2010-01-08 18:29:26