【问题标题】:Database for sequential data顺序数据数据库
【发布时间】:2012-06-08 15:59:44
【问题描述】:

我对数据库完全陌生,所以请原谅这个问题的简单性。我们有一个嵌入式 Linux 系统,它需要存储在几个小时的时间跨度内收集的数据。数据需要可按顺序搜索,包括 GPS、环境数据等数据。这些数据需要保存在可移动 SSD 上的文件夹中,并标记为“任务”。单个 SSD 上可以存在多个“任务”,不应混合在一起,因为它们需要由用户自行决定单独复制和保存到外部媒体。数据将被保存多达每秒 10 次,并且由于可能出现停电,因此需要非常可靠。

数据需要在创建它的系统上是可搜索的,而且在可移动磁盘被带到另一个系统(也包括 Linux)之后,它也需要在那里加载和使用。过去我们已经完成了自定义文件来存储数据,但似乎数据库可能是最好的选择。 MySQL 等数据库的可移植性如何?用户是否可以轻松移除带有数据库的磁盘并将其插入新机器以使用而无需太多努力?我们的查询主要是基于时间的,因为用户将在数据以大约 10 倍的收集率收集后“播放”数据。此外,我们的基本代码是用 Qt (C++) 编写的,因此我们需要以这种方式与数据库进行交互。

【问题讨论】:

    标签: mysql database qt embedded real-time


    【解决方案1】:

    我会选择 SQLite。它又小又轻。它将所有数据存储到一个文件中。您可以将文件复制或移动到另一台计算机并在那里阅读。你的数据写入者可以直接重新制作文件,当它检测到今天的 ssd 还没有文件时清空。

    还值得一提的是,SQLite 经历了testing 的水平,只有少数几个安全关键软件才能提供。测试套件虽然部分是自动生成的,但却是惊人的 1 亿行代码。就健壮性而言,它一点也不精简。比起随机的自制数据库实现,我更相信 SQLite。

    SQLite 用于经过认证的航空电子设备 AFAIK。

    【讨论】:

    • 我应该提到,在这种情况下,“嵌入式”并不意味着处理能力小或有限。该软件在昂贵的 64 位工作站主板上运行,该主板具有双十六进制内核和大量 RAM。它只是碰巧在直升机上。
    • 不过,整个数据库可以保存在一个文件中,您可以将其物理携带到新机器上并读取。
    猜你喜欢
    • 2010-10-15
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 2012-06-30
    • 2015-02-25
    • 2017-01-04
    相关资源
    最近更新 更多