我应该使用compress压缩mysql数据库中的电子邮件附件吗?

我应该使用compress压缩mysql数据库中的电子邮件附件吗?,mysql,compression,email-attachments,Mysql,Compression,Email Attachments,我将电子邮件存储在mysql数据库中,我想知道使用compress()将获取的电子邮件附件存储在数据库中以减小数据库的大小是否是一个好主意 我之所以犹豫不决,是因为大多数附件已经被压缩(比如jpg)。另一个原因是我找不到任何关于MySql内置压缩算法效率的信息。对我来说,这在很大程度上取决于该邮件的实际使用情况: 第一:你真诚地期望有多少流量,你有多少存储空间?(如果你有很多空间和很少的用户,为什么要麻烦?) 第二:今天的很多格式(jpg、odf文档、office文档、mp3)都已经被压缩了,所

我将电子邮件存储在mysql数据库中,我想知道使用compress()将获取的电子邮件附件存储在数据库中以减小数据库的大小是否是一个好主意


我之所以犹豫不决,是因为大多数附件已经被压缩(比如jpg)。另一个原因是我找不到任何关于MySql内置压缩算法效率的信息。

对我来说,这在很大程度上取决于该邮件的实际使用情况:

第一:你真诚地期望有多少流量,你有多少存储空间?(如果你有很多空间和很少的用户,为什么要麻烦?)

第二:今天的很多格式(jpg、odf文档、office文档、mp3)都已经被压缩了,所以你们不会从中得到太多的乐趣

第三:压缩可能会增加CPU使用率,因此您必须查看高峰时段的流量,以确定这是否会成为问题(很可能不会)

最后,如果您计划在服务器中使用服务器级文件系统,有些文件系统具有透明的数据压缩,因此您可能需要在其他方面投入时间


另一方面,如果您的资源非常有限,您可能会被迫压缩al以减少空间消耗

鉴于您提供的附加信息,似乎(a)您不需要能够搜索文件,只需检索它们,(b)您的数据库限制为1GB。我建议您不要将文件存储在DB中,只需存储文件的“键”,这可能只是一个唯一的文件名

在数据库中,您可以存储原始用户文件名,但可以使用唯一标识符(它甚至可以只是一个列ID,也可以创建一个正确的GUID)将附件写入文件存储

这将使您的数据库保持较小,从文件中检索附件的时间不会比从数据库中检索附件的时间长。当您在检索时将文件写回时,请传递原始文件名,而不是重命名的唯一文件名

如果您需要很多文件,那么您可以跨目录共享存储,这样它们就不会变得太大,如果需要,最终您可以跨文件系统

如果1GB是数据库和存储的限制,那么当然这可能没有多大帮助。在这种情况下,您应该压缩文件,但正如您已经知道的,对于已经采用压缩格式的文件,您可能无法获得很好的压缩比


支持将文件保留在数据库之外的最后一点是,它有助于保持数据库精简,从而加快备份/恢复或迁移活动。

您希望如何处理电子邮件?只需检索或搜索电子邮件?如果搜索,您只需查看内容或标题信息吗?如果可以r这些将有助于提供最佳答案…感谢您的回复。由于附件可能有许多不同的文件类型,我想在其中搜索并不十分方便。因此,这将只是检索它们。感谢您的想法。我可能会遇到存储问题,我的数据库只有1 GB,这似乎不多,即使是对于1个用户。否则——正如你所说——大多数格式已经被压缩了,所以我想我会节省工作并尝试扩展数据库空间。好吧,只有1GB是非常少的,我想你可以和你的老板或任何负责人谈谈,向他解释说,整个电子邮件系统只有1GB是可笑的(gmail actulay免费给你10GB)您必须获得更多的空间,也就是说,因为CPU时间很便宜(但不是免费的),所以您可以进行压缩,而且由于每次增益都没有多少空间,您还可以查看ZFS内置的压缩功能,这样您就可以轻松设置db压缩