当前位置:  开发笔记 > 数据库 > 正文

sqlite索引性能建议

如何解决《sqlite索引性能建议》经验,为你挑选了1个好方法。

我的iPhone应用程序中有一个sqlite数据库,我可以通过Core Data框架访问它.我正在使用NSPredicates来查询数据库.

我正在构建一个搜索功能,需要搜索包含文本的六个不同的varchar字段.目前,它非常慢,我需要提高性能,可能在sqlite数据库中.是否最好在所有这些列上创建索引?或者更好的是构建一个自定义索引表,将这六列扩展为多行,每行包含一个单词和它匹配的ID?还有其他建议吗?



1> 小智..:

您可以采取一些措施来提高在sqlite数据库中搜索文本的性能.虽然Core Data将您从底层商店中抽象出来,但是当您使用sqlite支持商店时,了解正在发生的事情可能是件好事.

如果我们假设您正在对这些字段进行子字符串搜索,那么您可以采取一些措施来提高搜索性能.Apple建议使用派生属性.这相当于在您的模型中维护用于搜索的属性的标准化版本.派生属性应该以可以索引的方式完成.然后使用二元运算符> <=等表达您对此派生属性的搜索.

我发现这样做可以将搜索范围从1秒减少到100毫秒以下.

为了清楚起见,我建议您查看ADC示例http://developer.apple.com/mac/library/samplecode/DerivedProperty/

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有