在数据库中存储大量数据的最有效方法

时间:2016-06-17 13:07:14

标签: c++ database qt optimization

在我目前的应用程序中,我将每秒收到超过2000帧,每个帧包含1024(通道)* 32位数据。我需要一种方法来存储它们在数据库中,或者可能是CSV文件。该应用程序不会全天运行,每年365天。唯一的目的是测试一些集成电路(可能会运行几分钟)。

我目前正在使用QT框架来显示数据,但它也具有数据库功能。也许使用qt + sqlite ...

如何管理这样的问题?我应该使用column = 1(帧编号)+ NUMBER OF CHANNEL,并使用尽可能多的行作为一个表吗?我应该只做一个列= 1(帧号)+ 1(通道号)+ 1通道值的表吗?

写入CSV文件会更快更有效吗?我花费更多时间来编写我的数据(无论是CSV还是通过与数据库的交互),图表滞后的越多。我试图保持这个简单,但仍然有效。 (避免多线程,信号量和互斥)。我有一些实时约束,图表需要实时。每个X帧(可能每25帧)都会更新图形,但在每个数据条目中,我都需要将其记录到某个文件或数据库中。

1 个答案:

答案 0 :(得分:-1)

如果您需要数据流的实时可视化,但不确定如何实现互斥锁或如何表示数据,我认为您需要更多地依赖第三方工具。我建议使用单个CSV文件/频道编写数据,然后在其他地方显示。 Microsoft Excel对于过滤/显示数据非常强大,将CSV文件导入其中非常简单。您还可以将图形链接到文件并手动更新输出,但是您不会得到要求的~80Hz刷新率...更像是1/60 Hz。

我做了一个快速的谷歌搜索,发现这个实时图形工具似乎提供了你所需要的。您的QT应用程序可以编写CSV文件并定期保存,实时图表可以显示它。

live-graph