我有一个 巨大的 map 上路径的经纬度核心数据库。
我有一个称为方式的对象,它由一组有序的节点(lon,lat)组成。我还在途中存储了封闭框(minLon,minLat,maxLon,maxLat ...)。
我的查询找到了 map 特定区域的所有方式:
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"minLon < %f AND maxLon > %f AND minLat < %f AND maxLat > %f",
maxLon, minLon, maxLat, minLat];
它的大坝慢!
我加快查询速度的想法是以某种方式将数据按正方形区域拆分(多个表?多个
.sqllite
文件?创建位置的哈希?),因此要搜索的数据更少。我怎样才能做到这一点?
最佳答案
老实说,我很惊讶这很慢。您的数据库中总共有多少条 Ways 以及您想要查询的区域中通常有多少条?
您是否尝试过打开 SQL 调试以查看实际对数据库运行的查询? (提示:添加 -com.apple.CoreData.SQLDebug 1 作为运行行为的方案编辑器中的命令行参数)
关于iphone - 拆分 CoreData 以获得更快的查询时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7908851/