如何最好地完成这个任务:
我有一个包含40k+记录(电视节目标题)的sqlite巨型表,我希望能够实时查询这个表。例如,如果用户搜索某个节目,当用户输入搜索词汇时,我会在每次按键之后读取sqlite并过滤记录(就像谷歌搜索建议一样)。
我的性能基准是100毫秒。我已经考虑了一些方案,例如创建索引,将数据分成多个表等。
然而,我真的很感激任何可以让我以最快的速度完成任务的建议,这样我就可以避免UI刷新延迟 - 从那些已经做过类似事情的程序员那里得到反馈是非常棒的。
如何最好地完成这个任务:
我有一个包含40k+记录(电视节目标题)的sqlite巨型表,我希望能够实时查询这个表。例如,如果用户搜索某个节目,当用户输入搜索词汇时,我会在每次按键之后读取sqlite并过滤记录(就像谷歌搜索建议一样)。
我的性能基准是100毫秒。我已经考虑了一些方案,例如创建索引,将数据分成多个表等。
然而,我真的很感激任何可以让我以最快的速度完成任务的建议,这样我就可以避免UI刷新延迟 - 从那些已经做过类似事情的程序员那里得到反馈是非常棒的。
需要做的事情:
您可能会发现:只要不做任何非常愚蠢的事情,SQLite和iPhone实际上都非常有能力。
记住“感知性能”——在按下键后立即进行查找可能会有一定的开销。但是,用户按下键需要多少毫秒呢?您可以等到用户几百毫秒内没有输入任何内容时再更新结果列表,这样就可以避免频繁更新。对于非常快速的用户,也许可以在他仍在输入时每隔X百毫秒更新一次。
你怎么知道性能会很差?即使对于 iPhone,4 万行也不算太多……在优化之前先在手机上试一下。