我们正在捕获一个大小可变的原始二进制字符串(从100k到800k),我们希望存储这些单独的字符串.它们不需要被索引(duh),并且不会对该字段的内容进行任何查询.
这些插入物的数量将非常大(它们用于存档目的),比如说每天10,000个.这些大二进制字符串的最佳字段类型是什么?它应该是文本还是blob还是其他什么?
最佳答案就Postgresql而言,输入文本是不可能的.它比较慢,使用更多空间,并且比bytea更容易出错.基本上有3种方法:
>使用类型bytea(基本上相当于sql blob类型的pg)
>使用“large objects“
>将blob存储为文件系统中的文件,仅存储文件名
在数据库中.
每个人都有自己的优点和缺点.
>处理起来相当简单,但需要最多的磁盘空间.需要一些解码和编码,这使得它也很慢.备份的规模迅速增长!
>处理时略显尴尬,但你有自己的基础设施来 *** 纵blob – 如果你需要它.而且您可以更轻松地进行单独备份.
>是迄今为止最快的方式,并使用最少的磁盘空间.但它不提供存储在数据库中时的参照完整性.
我有许多类似于图像文件的实现:在bytea字段中存储一个小缩略图,用于参照完整性和快速参考.将原始图像作为文件存储在文件系统中.当然,您需要考虑何时以及如何删除过时的文件,如何备份外部文件等. 总结
以上是内存溢出为你收集整理的mysql – 存储长二进制(原始数据)字符串全部内容,希望文章能够帮你解决mysql – 存储长二进制(原始数据)字符串所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)