加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2020-12-11 23:43:12 所属栏目:MySql教程 来源:网络整理
导读:我们正在捕获一个大小可变的原始二进制字符串(从100k到800k),我们希望存储这些单独的字符串.它们不需要被索引(duh),并且不会对该字段的内容进行任何查询. 这些插入物的数量将非常大(它们用于存档目的),比如说每天10,000个.这些大二进制字符串的最佳字段类型

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

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

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读