gpt4 book ai didi

ios - 核心数据获取缓慢

转载 作者:行者123 更新时间:2023-12-01 16:03:49 27 4
gpt4 key购买 nike

我正在从大型数据库中检索一系列对象。每次查找有1-20个结果。使用获取请求,如下所示:

NSPredicate *indexPredicate = [NSPredicate predicateWithFormat:
@"index == %@",indexNumber];

我可以在相对较短的时间内得到结果。
CoreData: annotation: total fetch execution time: 0.0623s for 9 rows.

但是,在将所有谓词与[NSCompoundPredicate或PredicateWithSubpredicates:合并在一起时,如果要在一个操作中进行提取,则速度会下降。
CoreData: annotation: total fetch execution time: 0.3890s for 195 rows.

我已尝试建立索引,设置访存和批处理限制,但无法减少总访存时间。我也尝试过使用GDC一次一次执行提取请求,但是在设置它时遇到了麻烦。如何减少获取数据的时间?

最佳答案

将20个索引查询与OR组合在一起,在获取时有很多比较。您可以通过将索引值收集到数组中,然后将其与IN进行一次比较来改善问题。就像是

NSArray *indexesToFetch = // A bunch of NSNumbers with index numbers of interest
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"indexNumber in %@", indexesToFetch];

如果您有大量数据要搜索,这仍然需要大量工作。但是,使用 IN进行此类操作通常比使用一整串 OR更快。

关于ios - 核心数据获取缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25253567/

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