存储长二进制(原始数据)字符串

我们正在捕获大小可变(从100k到800k)的原始二进制字符串,并且我们想存储这些单独的字符串。它们不需要索引(duh),并且不会对该字段的内容进行任何查询。

这些插件的数量将非常大(用于存档),例如每天10,000。像这样的大型二进制字符串的最佳字段类型是什么?应该是text还是blob其他?

回答:

就 而言,类型text是不可能的。与目标相比,它更慢,占用更多空间并且更容易出错bytea

基本上有3种方法:

  1. 使用类型 (基本上与SQL blob类型的pg等效)

  2. 使用“ ”

  3. 将blob作为文件存储在文件 而仅将文件名存储在数据库中。

每个都有自己的优点和缺点。

  1. 非常易于处理,但是需要最多的磁盘空间。需要一些解码和编码,这也使它变慢。备份的大小迅速增加!

  2. 在处理方面有些尴尬,但是您有自己的基础结构来处理blob-如果需要的话。而且,您可以更轻松地进行单独的备份。

  3. 是迄今为止最快的方法,占用的磁盘空间最少。但是它不提供在数据库内部存储时获得的参照完整性。

我有许多类似于图像文件的实现:将一个

存储在bytea字段中,以实现参考完整性和快速参考。将原始图像作为文件存储在文件系统中。当然,您需要考虑何时以及如何删除过时的文件,如何备份外部文件等。

以上是 存储长二进制(原始数据)字符串 的全部内容, 来源链接: utcz.com/qa/425626.html

回到顶部