建议的存储模型是将附件存储在单独的文件(或 blob)中,并将电子邮件本身存储为 MIME 多部分消息,其中包含对附件的引用及其编码方式。这允许用户显示原始,但不需要我实际存储效率较低的 base64 与消息。大多数情况下,我将能够只存储使用的 base64 行长度。
这样,我们可以执行附件级别的重复数据删除。
但重复数据删除如何走得更远?以下是我的想法:
- 当然,所有附件和电子邮件都可以单独压缩(字节级重复数据删除)。
- 我可以将 12 个附件的集合压缩到一个文件中。压缩相同类型的多个文件(例如 PDF),即使是来自同一发件人的文件,可能更有效。
- MIME 消息也可以成组压缩。
- 我不关心搜索效率,因为会使用全文索引。
- 搜索电子邮件当然会使用一种全文索引,它不会被压缩。
- 解压缓存将在电子邮件第一次到达时创建,并且仅在一段时间未查看电子邮件后才会被删除。
您在这方面有什么建议吗?电子邮件存储系统的正常情况是什么?