![邮件服务器存储后端:文件系统 VS 数据库](https://linux22.com/image/631587/%E9%82%AE%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AD%98%E5%82%A8%E5%90%8E%E7%AB%AF%EF%BC%9A%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%20VS%20%E6%95%B0%E6%8D%AE%E5%BA%93.png)
我正在尝试比较邮件服务器软件,以决定在我工作的 ISP 上使用哪种软件。我主要困惑于哪种存储后端更适合这种用途(同样,在 ISP,即预期有大量用户和可能的高负载)。
我的问题是:两种主要存储后端各自有哪些优点/缺点?
文件系统:一般来说,因为我认为格式不会造成显著的差异,如果我错了,请纠正我。
数据库:一般来说,无论什么引擎。
我尝试使用许多搜索词进行搜索,但没有成功,如能提供任何解释我将不胜感激。
答案1
与所有软件一样,对于邮件服务器软件,您需要深入了解并了解软件的工作原理。
例如,Cyrus IMAPd
使用 Maildir 格式(至少默认情况下),但除此之外,它还使用cyrus.{header,index,cache}
文件来提高性能。借助这些数据文件,它可以将邮件标题和其他常见内容返回到邮件客户端,而无需扫描每个邮件文件,从而大大提高性能。
对于基于数据库的软件,您需要找出哪种数据库服务器最适合您的邮件服务器,并且您可能需要一名称职的 DBA 来确保一切顺利运行。还要确保您选择的邮件服务器软件确实会生成合理的 SQL 查询。
如果您想安然入睡,这只是一个开始。您还需要考虑系统的可扩展性(例如,使用 Cyrus 时,您可以使用Cyrus Murder
或放在Perdition
Cyrus 前面以扩展到多个服务器)、系统的可用性(一个服务器节点是否发生故障是否重要),当然还有系统的可维护性。恢复单个邮箱有多容易?还是整个系统?如何备份可能大量的邮件?如何管理用户帐户?