Mysql 存储长二进制(原始数据)字符串
我们正在捕获一个大小可变(从100k到800k)的原始二进制字符串,我们希望存储这些单独的字符串。它们不需要编制索引(duh),也不会对字段的内容进行查询Mysql 存储长二进制(原始数据)字符串,mysql,postgresql,database-design,blob,Mysql,Postgresql,Database Design,Blob,我们正在捕获一个大小可变(从100k到800k)的原始二进制字符串,我们希望存储这些单独的字符串。它们不需要编制索引(duh),也不会对字段的内容进行查询 这些插入物的数量将非常大(它们用于存档目的),比如说每天10000个。对于这样的大型二进制字符串,最好的字段类型是什么?它应该是text还是blob还是其他什么?您可能应该在大多数数据库中使用blob文本列通常会根据文本编码或区域设置进行规范化或转换;因此实际字节可能不会像预期的那样被保留。几乎在所有情况下,这是text和blob列之间的唯一
这些插入物的数量将非常大(它们用于存档目的),比如说每天10000个。对于这样的大型二进制字符串,最好的字段类型是什么?它应该是
text
还是blob
还是其他什么?您可能应该在大多数数据库中使用blob
<代码>文本列通常会根据文本编码或区域设置进行规范化或转换;因此实际字节可能不会像预期的那样被保留。几乎在所有情况下,这是text
和blob
列之间的唯一区别。我们有user VARBINARY列来存储高达300 MB的文件。就PostgreSQL而言,键入text
是不可能的。为此,它比bytea
更慢,占用更多空间,更容易出错
基本上有三种方法:
我有很多类似于图像文件的实现:在bytea字段中存储一个小缩略图,以实现引用完整性和快速引用。将原始图像作为文件存储在文件系统中。当然,您需要考虑何时以及如何删除过时的文件,如何备份外部文件等等。最近有没有数据比较这些方法?如果有一些客观的比较,那就太好了。