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

前端之家收集整理的这篇文章主要介绍了mysql – 存储长二进制(原始数据)字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

这些插入物的数量将非常大(它们用于存档目的),比如说每天10,000个.这些大二进制字符串的最佳字段类型是什么?它应该是文本还是blob还是其他什么?

最佳答案
就Postgresql而言,输入文本是不可能的.它比较慢,使用更多空间,并且比bytea更容易出错.
基本上有3种方法

>使用类型bytea(基本上相当于sql blob类型的pg)
>使用large objects
>将blob存储为文件系统中的文件,仅存储文件
数据库中.

每个人都有自己的优点和缺点.

>处理起来相当简单,但需要最多的磁盘空间.需要一些解码和编码,这使得它也很慢.备份的规模迅速增长!
>处理时略显尴尬,但你有自己的基础设施来操纵blob – 如果你需要它.而且您可以更轻松地进行单独备份.
>是迄今为止最快的方式,并使用最少的磁盘空间.但它不提供存储在数据库中时的参照完整性.

我有许多类似于图像文件的实现:在bytea字段中存储一个小缩略图,用于参照完整性和快速参考.将原始图像作为文件存储在文件系统中.当然,您需要考虑何时以及如何删除过时的文件,如何备份外部文件等.

猜你在找的MySQL相关文章