【问题标题】:Choice of embedded database?嵌入式数据库的选择?
【发布时间】:2008-12-13 02:50:38
【问题描述】:

我们正在嵌入式平台上构建应用程序,该平台需要相当高性能的数据库(在超过 500,000 个条目的表上选择速度非常低)。

数据库需要能够:

  • 将原子提交信息存储在 NVRAM 中,以便在提交完成前断电时保留此类信息。
  • 写入 NAND 闪存,以平衡内存磨损(可以使用例如 jffs2 或 yaffs2)。

    目前,我们的选项似乎是“自己动手”的方法,或者可能是 SQLite。

    任何其他选项,或关于“自己动手”或使用 SQLite 的详细信息的指针表示赞赏!

    编辑: 目标具有 32MB 的 RAM、1MB 的 NVRAM 和 64MB 的 NAND 闪存。其余代码是 C,因此这是首选语言。目标处理器是 ARM。一般来说,需要最高性能的查询非常简单。复杂查询不需要具有相同级别的性能。
  • 【问题讨论】:

    • 有关于平台的信息吗?多少内存?什么样的CPU?它将能够运行什么样的代码?爪哇? C? 。网?根据可用资源的不同,有一些可能的选项会有很大差异。
    • 另外,您是否需要执行复杂的查询(订单、组、联接、组合条件等),或者您更关注 1) 添加行 2) 基于 a 提取行键模式?
    • 您是否知道任何合理的 RDBMS 都会在事务日志中保留信息以从电源故障中恢复?

    标签: database sqlite embedded filesystems


    【解决方案1】:

    Apple 的 iPhone(和 iPod Touch)的许多功能都使用 SQLite DB,因此那里肯定有一个经过验证的基于闪存的平台。但是,我怀疑这些表中的数据量是否超过 50 万行。

    【讨论】:

    • 马克,我接受这个答案,因为它给了我最新的信息!谢谢!
    【解决方案2】:

    我认为this Wikipedia RDBMS comparison 可能会帮助您做出选择。

    但我不明白您为什么有特定的 NVRAM 要求。

    【讨论】:

    • 我们需要系统保存所有信息,即使在电源故障期间也是如此。 NVRAM 需要保存有关电源故障时正在进行的任何事务的信息。
    • 这就是事务日志的作用。它是在事务开始之前编写的,然后可用于在电源故障后回滚或重新应用。
    • @RoadWarrior:好的,我听说它叫不同的东西。感谢您的澄清。我们的目标是将事务日志记录在 NVRAM 中。
    【解决方案3】:

    代码库提供了一个可靠的可移植轻量级快速 isam 事务。

    【讨论】:

    • 嗯。我下载了代码库示例,与 SQLite 相比,它的速度相当慢。
    【解决方案4】:

    如果您的嵌入式系统可以访问 .NET 框架,您可以嵌入 VistaDB

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 2010-10-15
      • 1970-01-01
      • 2013-12-25
      • 2011-01-07
      • 2014-01-11
      • 2011-05-14
      • 2014-02-12
      相关资源
      最近更新 更多