gpt4 book ai didi

iphone - sqlite 索引性能建议

转载 作者:行者123 更新时间:2023-12-03 19:32:48 24 4
gpt4 key购买 nike

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

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

最佳答案

您可以采取一些措施来提高在 sqlite 数据库中搜索文本的性能。尽管 Core Data 将您从底层存储中抽象出来,但了解当您的存储使用 sqlite 支持时发生的情况可能会很好。

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

我发现这样做可以将我们的搜索时间从大约 1 秒缩短到 100 毫秒以下。

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

关于iphone - sqlite 索引性能建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1862771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com