【发布时间】:2013-10-02 13:17:16
【问题描述】:
我的应用程序位于嵌入式 PLC 平台上。可用的语言由 IEC 61131 定义。试图破解我的“运行时环境”不是一种选择。我可以管理一些低级别的文件操作,但实时性能永远是一个瓶颈。
我不需要 SQLite 提供的大部分功能。基本上,我想以符合 SQLite 的方式预先为我的数据库定义表结构。从我的 PLC 中,我想用统计数据(大量)填充数据库文件。在某些时候,这些数据库文件将从它们在 PLC 上的临时存储中传输。无需执行 SELECTS 或 UPDATES。写入文件后,PLC 无需再次接触它们。
但我不确定我是否能负担得起实际实现 INSERT 查询,而且我知道任何数据库“内务管理”都是不可能的。我可以在基本层面上使用 SQLite 数据库文件,并且仍然期望 SQLite以后连接它没有任何问题?破坏数据库完整性有多容易?随着文件变大,必须执行的最小内务管理功能是什么?
PS
- 我的数据是时间相关的,并且很大程度上是线性的
- 没有交叉表引用/外键
- 标准数据类型
【问题讨论】:
-
您在寻找更像循环数据库的东西吗?查看 RRDtool。或者我认为你应该只写一个简单的中间文件格式,一旦你把它从嵌入式设备上取下来,就将它转换成更强大的东西。
-
如果您不需要执行 SELECT 和 UPDATE,那么您只需插入数据。在这种情况下,您是否真的需要一个数据库,而不是仅仅将数据附加到某个 .csv 文件并定期下载/轮换它?
-
RRDtool is my is my end-game。我目前正在使用 CSV,但我以很快的速度收集了许多数据点,并且我的存储很快变得臃肿。对我的 CSV 进行切片和切块很痛苦。我基本上在 CSV 之上创建了我自己的存储层,并且它开始变得丑陋。枚举和时间戳之类的东西给我带来了最多的问题。
-
大部分转换发生在我的嵌入式平台上。对于大多数现有工具来说,知道要读取哪些 CSV 文件以及如何重新组合数据并不自然。我几乎宁愿花时间在第一次就把它做好。