我目前正在开发一个基于 Android 的项目。在不涉及许多细节的情况下,该软件将在定制的设备上运行。硬件永远不会改变,永远都是一样的。这是一个明确的优势:)
话虽如此,该项目要求我们在设备上存储负载和数据负载 - 在某些表中超过 3m 行。SQLite 对我们来说很好地处理了这么多行的扫描,当我们开始进行复杂的连接以带回我们需要的所有相关数据时,问题就出现了。我们已经考虑过对数据库进行非规范化,但担心这会将数据库推到可用范围之外。
我们正在研究使用面向对象的数据库,例如 db4o 或 NeoDatis。我们希望通过存储对象,我们可以摆脱行级别的关系并将它们存储在对象上(就像 OOP 一样)。问题是我们无法找到这些 ODB 在 Android 上运行和使用的任何与性能相关的基准(至少不是最近的)。
是否有人对 Android 上的 OODB 和/或存储和访问大量数据有任何经验?如果是这样,您可以提供的任何建议将不胜感激。
- 编辑
这是我们面临的问题的一个例子。它与我们的应用程序无关(我的保密协议说我不能发布任何具体内容),但这个例子很好地代表了这个问题。
想象一下,我们正在构建一个应用程序来监控在任何给定时间在新泽西收费公路上行驶的每一辆车。对于任何给定的汽车,我们需要跟踪汽车的品牌和型号、车内有多少人以及车内人员的人口统计数据。所以基本上你最终得到的数据看起来像 -
车
编号 | 颜色 | make_id | in_toll_lane | model_id
制作
编号 | 姓名
模型
编号 | 姓名 | make_id
car_person
编号 | 年龄 | 性别 | is_driver | car_id
收费车道
编号 | car_in_line | 理想的汽车线 | 理想的住户
这些数据会经常变化。它也将变得相当庞大,因为毫无疑问,在任何特定时间都有很多人沿着 NJ Pike 行驶。
有了这些数据,我们需要能够根据需要对任何在长矛上行驶的人进行快照。我们还需要能够拍摄所有正在开车的男性或收费公路上的所有女性的快照。我们还需要能够按年龄、性别、品牌、型号等进行搜索。
现在想象一下,我们需要根据车内人数、理想乘员人数、已经排队的汽车数量以及应该排队的理想汽车数量来确定每辆车应该进入哪个收费车道.
这是一个非常简单的例子,虽然很能代表我们的问题。
-- 结束编辑
提前致谢!