我们在 iPhone 应用程序上使用 sqlite。在搜索框中,我们想要查询数据库并返回与用户输入的内容相关的任何值。目前,我们正在搜索几个不同的列,例如
Gene
Disease
Medicine
Keywords
我们从当搜索文本改变时调用这个方法(带有一些伪代码)的蛮力方法开始:
// Basically we do this for our 4 columns we are searching on
NSString *query2 = [NSString stringWithFormat:@"select * from MedicineList where MedicineList.Keywords like \"%%%@%%\"",searchtext];
FMResultSet * rs2 = [ _patientAnnotatedDatabase executeQuery:query2];
while ([rs2 next])
{
// if you find anything, put it in a dictionary
}
[rs2 close];
这是一种搜索列并返回结果字典的大方法。当我们的数据集很小时,它就可以工作。当然,现在我们的数据集更大了,它的性能并不是那么好。除了在我们正在搜索的列上创建索引之外,我们还可以做其他性能方面的事情吗?提前致谢。