Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 存储长二进制(原始数据)字符串_Mysql_Postgresql_Database Design_Blob - Fatal编程技术网

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

Mysql 存储长二进制(原始数据)字符串,mysql,postgresql,database-design,blob,Mysql,Postgresql,Database Design,Blob,我们正在捕获一个大小可变(从100k到800k)的原始二进制字符串,我们希望存储这些单独的字符串。它们不需要编制索引(duh),也不会对字段的内容进行查询 这些插入物的数量将非常大(它们用于存档目的),比如说每天10000个。对于这样的大型二进制字符串,最好的字段类型是什么?它应该是text还是blob还是其他什么?您可能应该在大多数数据库中使用blob文本列通常会根据文本编码或区域设置进行规范化或转换;因此实际字节可能不会像预期的那样被保留。几乎在所有情况下,这是text和blob列之间的唯一

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


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

您可能应该在大多数数据库中使用
blob
<代码>文本列通常会根据文本编码或区域设置进行规范化或转换;因此实际字节可能不会像预期的那样被保留。几乎在所有情况下,这是
text
blob
列之间的唯一区别。

我们有user VARBINARY列来存储高达300 MB的文件。

PostgreSQL而言,键入
text
是不可能的。为此,它比
bytea
更慢,占用更多空间,更容易出错

基本上有三种方法:

  • 使用类型(基本上是SQL blob类型的pg等价物)

  • 使用

  • 将blob作为文件存储在文件系统中,并且只存储文件名 在数据库中

  • 每一种都有自己的优点和缺点

    一,。操作非常简单,但需要最多的磁盘空间。需要一些解码和编码,这使得它也很慢。备份规模快速增长

    二,。在处理上有点笨拙,但是如果需要的话,您有自己的基础设施来处理blob。而且,您可以更轻松地进行单独备份

    三,。是迄今为止最快的方法,使用的磁盘空间最少。但它不提供存储在数据库中时获得的引用完整性


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

    最近有没有数据比较这些方法?如果有一些客观的比较,那就太好了。