Mysql 顺序数据数据库

Mysql 顺序数据数据库,mysql,database,qt,embedded,real-time,Mysql,Database,Qt,Embedded,Real Time,我对数据库完全陌生,所以请原谅问题的简单性。我们有一个嵌入式Linux系统,需要存储在几个小时的时间跨度内收集的数据。数据需要按顺序进行搜索,包括GPS、环境数据等数据。这些数据需要保存在可移动SSD上的文件夹中,并标记为“任务”。多个“任务”可以存在于单个SSD上,不应混合在一起,因为用户需要自行将它们复制并保存到外部介质。数据将以每秒10次的频率保存,并且需要非常健壮,因为可能会发生断电 数据需要在创建它的系统上进行搜索,但也需要在可移动磁盘被带到另一个系统(也是Linux)后进行搜索,并需

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


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

我选择SQLite。它又小又轻。它将所有数据存储到一个文件中。您可以将文件复制或移动到另一台计算机并在那里读取。您的data writer只需重新生成文件,当它检测到当前的ssd尚未包含该文件时,该文件为空

还值得一提的是,SQLite的运行水平仅限于选择几个安全关键软件。该测试套件虽然部分是自动生成的,但却包含了惊人的1亿行代码。说到健壮性,它一点也不简单。我更信任SQLite,而不是一个随机的自制数据库实现


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

我应该提到,在这种情况下,“嵌入式”并不意味着处理能力小或有限。该软件运行在一个昂贵的64位工作站主板上,具有双十六进制内核和数吨RAM。不过,整个数据库可以保存在一个文件中,你可以把它物理地带到一台新机器上读取。