最佳SQL电子邮件附件存储数据类型



我正在构建自己的网络电子邮件,并希望尽可能优化地存储电子邮件附件。

以下是我正在努力实现的一般准则。。。

1.)它不是文件共享服务,而是电子邮件。

2.)我想确保大小合理的附件成功保存在数据库中。

3.)我想尽量减少附件在数据库中使用的空间量。

4.)我想使用中性的SQL方法,这样将来从MySQL迁移到PostgreSQL时就不会有问题。

5.)什么是合理的限制?我正在考虑单个附件的最高容量为16-25兆字节。

AOL、Hotmail、Gmail、Yahoo和其他公司似乎通常将附件编码为base64,这是一种文本类型。将附件存储为文本类型还是二进制类型在空间上更为优化?

我很乐意就主题做出任何澄清。

与Chue不同,我认为将附件存储在数据库中是非常好的。事实上,我也将我的文件存储在数据库中。由于我的所有应用程序都可以轻松访问数据库,所以我的所有程序访问文件都非常容易。但你的问题是关于什么数据类型。

只有少数几种选择。很遗憾,您的要求有冲突。它基本上可以归结为二进制字段或文本字段。这两种类型中的任何一种都可以扩展到您需求的许多倍。

为了最大限度地减少空间使用,您需要使用二进制,因为任何类型的文本编码都会增加使用的空间。MySQL的二进制数据类型为VARBINARY(最多65535字节)或BLOB(不受限制)。Postgre的二进制类型是BYTEA。因此,不能在两台服务器上都有相同的类型。然而,在两者之间转换可能是一个非常简单的迁移脚本。

这两个数据库都支持一个VARCHAR,它将支持您的需求。我会选择二进制格式。

至于合理的限制,许多现有服务提供10-20MB的附件。这似乎对大多数人都有效。随着越来越多的人开始用手机发送高清视频,你可能需要考虑提高这一限制。

相关内容

  • 没有找到相关文章

最新更新