我们正在捕获一个大小可变的原始二进制字符串(从100k到800k),我们希望存储这些单独的字符串.它们不需要被索引(duh),并且不会对该字段的内容进行任何查询.
这些插入物的数量将非常大(它们用于存档目的),比如说每天10,000个.这些大二进制字符串的最佳字段类型是什么?它应该是文本还是blob还是其他什么?
最佳答案
就Postgresql而言,输入文本是不可能的.它比较慢,使用更多空间,并且比bytea更容易出错.
基本上有3种方法:
原文链接:https://www.f2er.com/mysql/434084.html基本上有3种方法:
>使用类型bytea(基本上相当于sql blob类型的pg)
>使用“large objects“
>将blob存储为文件系统中的文件,仅存储文件名
在数据库中.
每个人都有自己的优点和缺点.
>处理起来相当简单,但需要最多的磁盘空间.需要一些解码和编码,这使得它也很慢.备份的规模迅速增长!
>处理时略显尴尬,但你有自己的基础设施来操纵blob – 如果你需要它.而且您可以更轻松地进行单独备份.
>是迄今为止最快的方式,并使用最少的磁盘空间.但它不提供存储在数据库中时的参照完整性.
我有许多类似于图像文件的实现:在bytea字段中存储一个小缩略图,用于参照完整性和快速参考.将原始图像作为文件存储在文件系统中.当然,您需要考虑何时以及如何删除过时的文件,如何备份外部文件等.