我有一个包含相对较大的SQLite数据库的应用程序,其中包含大约15,000
行。在应用程序开始时,我运行一个SELECT * FROM TABLE
查询并填充一个NSMutableArray *data
包含类的元素ProverbRow
。每个ProverbRow
对象对应数据库中的一行数据,包含NSString
s和NSInteger
s对应数据库的每个单元格。因此,该NSMutableArray *data
对象实际上是SQLite数据库的副本。
现在,问题...
我想像这个例子一样在应用程序中添加搜索功能:
当用户输入“abc”并点击搜索时,我想获取对象内部包含字符串“abc”作为子字符串data
的所有元素。所以,应该得到“abcde”、“qqqabcqqq”等字符串。NSString *proverb
ProverbRow
目前,为了做到这一点,我正在发出这样的查询:SELECT * FROM PROVERB WHERE PRONUNCIATION LIKE abc
。我从查询中返回的对象存储在另一个NSArray
中以供进一步使用。
现在,如果只有少量对象被返回,那么这个查询完成得足够快,但是如果行数较多,则需要很多时间。
我想知道除了触发查询之外是否有更快的方法来完成此操作。是否可以使用已经填充的data
对象并通过循环运行它并等同于子字符串或类似的东西?我主要关心的是减少搜索时间。
谢谢!