虽然这个问题已经出现在过去的上一篇文章中,但不同的场景和不同的考虑决定哪一个是最好的。
我需要实现一个系统,每年可以处理200GB到400GB大小的图像(每张图像大约<1mb)。它是P&amp; C图像,仅允许授权的个人访问和仅查看。我打算使用基于系统的应用程序来INSERT到MYSQL数据库,并使用基于PHP的Web应用程序进行VIEW。
我正在考虑使用FILESYSTEM,因为它很容易备份&amp;恢复图像,无需担心MYSQL数据库的大小。
我正在使用在Windows Server中运行的MySQL + Apache + PHP。
非常感谢您的建议和意见。
谢谢。
此致 德斯蒙德
答案 0 :(得分:6)
小于256K的对象最好存储在数据库中而对象中 大于1M的文件最好存储在文件系统中。在256K和1M之间, 读取:写入比率和对象覆盖或替换的速率 重要因素。
烃源: http://research.microsoft.com/apps/pubs/default.aspx?id=64525
编辑:它是MS SQL,因此可能与Mysql相同:)
答案 1 :(得分:3)
另外值得一读: Best Practice in File Storage while Building Applications - Database (Blob Storage) Vs File System
BLOB存储作为最佳解决方案
为了更好的可扩展性。尽管文件系统设计用于处理大量不同大小的对象,例如文件和文件夹,但实际上它们并未针对大量(数千万)小文件进行优化。数据库系统针对此类情况进行了优化。
为了更好的可用性。数据库服务器的可用性功能超出了文件系统提供的功能。数据库复制是一组允许您在分布式环境中复制,分发和可能修改数据的解决方案,而日志传送提供了一种在主系统出现故障时保留数据库备用副本的方法。
用于具有受控增长的数据的中央存储库。 DBA有权控制和监视数据库的增长,并在需要时拆分数据库。
文件系统存储是最佳解决方案