gpt4 book ai didi

"video frames"的 MySQL Blob 与磁盘

转载 作者:行者123 更新时间:2023-11-29 02:35:53 26 4
gpt4 key购买 nike

我有一个 C++ 应用程序,它每秒生成 6 个相对较小的类似图像的整数数组。数据是 64x48x2 维的 int(即 64x48 二维向量的网格,每个向量由两个 float 组成)。每张图片约 26kb。该应用程序还会生成时间戳和一些描述数据的特征。我想将每帧的时间戳和功能存储在 MySQL 数据库列中。我还需要将原始数组作为二进制数据存储在磁盘上的文件中或作为数据库中的 blob 字段。假设该应用程序或多或少会不间断地运行,并且我会想出一种方法来存档超过特定年龄的数据,这样存储就不会成为问题。

对于 blob、光盘上的文件或我什至没有想到的其他方法,这里的权衡是什么?我不需要查询二进制数据,但我需要查询表中的其他元数据/功能(我肯定会根据时间戳构建索引),并检索二进制数据。如果我将多个帧存储在磁盘上的单个文件中,而不是每个文件一个帧,那么方程式是否会改变?

是的,我读过MySQL Binary Storage using BLOB VS OS File System: large files, large quantities, large problemsTo Do or Not to Do: Store Images in a Database ,但我认为我的问题有所不同,因为在这种情况下,将有数百万个相同尺寸的二进制文件。我不确定在文件系统中维护那么多小文件与在 db blob 列中存储那么多文件相比对性能有何影响。任何观点都将不胜感激。

最佳答案

在某个时刻,查询许多 blob 变得慢得无法忍受。我怀疑即使您的二进制文件尺寸相同,情况也会如此。此外,您仍然需要一些代码来访问和处理 blob。而且这并没有利用可能会直接从文件系统加速图像查询的文件缓存。

但是!您提供的链接没有提到基于对象的数据库,它可以存储您描述的数据,您可以非常快速地访问它,并可能以 native 格式返回它。有关讨论,请参阅链接或仅搜索谷歌,有很多讨论:

Storing images in NoSQL stores

我也会研究 HBase。

我想既然您一开始就不确定要使用什么(而且没有答案),那么替代解决方案可能是合适的。

关于 "video frames"的 MySQL Blob 与磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5160859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com