Iphone SQLite与内存

Iphone SQLite与内存,iphone,sqlite,memory,performance,Iphone,Sqlite,Memory,Performance,我的应用程序有问题 假设我有6个用户,每个用户最多可以有9个分数条目(即在晚上8:00时获得1000分,收集3枚金牌,4枚银牌等),比如每个阶段和9个阶段的分数 所有这些分数都来自一个API调用,因此它可以以3分钟以上的间隔进行更新 我需要对这些数据执行的操作是 从第4阶段中找到最接近的最小值和最大值记录 还有一些更多的操作,比如加减两个分数等等 所有这6个用户,以及他们的分数记录已经在数据库中,在API调用后需要更新 现在我的问题是: 对于这类数据(这里的分数数据)来说,将所有6个用户

我的应用程序有问题

假设我有6个用户,每个用户最多可以有9个分数条目(即在晚上8:00时获得1000分,收集3枚金牌,4枚银牌等),比如每个阶段和9个阶段的分数

所有这些分数都来自一个API调用,因此它可以以3分钟以上的间隔进行更新

  • 我需要对这些数据执行的操作是
    • 从第4阶段中找到最接近的最小值和最大值记录
    • 还有一些更多的操作,比如加减两个分数等等
所有这6个用户,以及他们的分数记录已经在数据库中,在API调用后需要更新

现在我的问题是:

对于这类数据(这里的分数数据)来说,将所有6个用户的所有数据保存在NSArray或NSDictionary的内存中,并通过min-max算法在该数组中查找min和max,这是一种更好的方法吗

它应该通过类似“WHERE score=200”的查询从数据库中获取,简言之,两个数据库查询分别返回最接近的min和max记录,而不是将所有数据保留在内存中

我们关注的是速度和内存使用。问题是,DB调用是否能够快速高效地查找min和max,或者在DB中所有记录的数组中搜索min和max。 所有记录可以是6个用户*9每个用户的分数=54。 记录的更新时间可以超过3分钟。 查找特定值的最小-最大值的频率很高

如果需要更多详细信息,请询问。
提前感谢。

您处理的数据量如此之小,我想不出有什么值得担心的。无论哪种方法使您的开发过程最简单,都要这样做

编辑:

如果我有很多数据(数百个竞争对手),我会使用SQLite。您可以执行如下查询:

SELECT MIN(`score`) FROM `T_SCORE` WHERE `stage` = '4';
这样,您就可以让数据库为您处理计算,这样您就不必获取所有结果

我的SQL fu不是最棒的,但我认为你也可以做到:

SELECT `stage`, MIN(`score`) AS min, MAX(`score`) AS max FROM `T_SCORE` GROUP BY `stage`

这将在一个查询中完成所有计算。

Thanx Amorya!假设我有一个合理的数据量,那么你会选择DB还是将数据保存在NSArras/NSDictionary中?