【发布时间】:2011-02-22 20:15:13
【问题描述】:
我有一个存储大量用户生成文件的 Web 应用程序。目前这些都存储在服务器文件系统上,这对我来说有几个缺点。
- 当我们移动“文件夹”(由我们的应用程序定义)时,我们还必须移动磁盘上的文件(尽管这更多是由于原始开发人员的奇怪设计决定,而不是需要将内容存储在文件系统)。
- 很难为文件系统操作编写测试;我有一个模拟文件系统类,它记录诸如移动、删除等操作,而不执行它们,这或多或少可以完成这项工作,但我对测试没有 100% 的信心。
- 我将添加一些其他工作,这些工作需要从其他服务访问文件以执行其他任务(例如在 Solr 中编制索引、生成缩略图、电影格式转换),因此我需要远程获取这些文件。通过网络共享执行此操作似乎很狡猾...
- 过去处理文件系统的权限有时会给我们带来问题,尽管现在我们已经转移到纯 Linux 环境,这应该不成问题了。
所以,我的主要问题是
- 在 MySQL 中将文件存储为 BLOB 有哪些缺点?
- NoSQL 系统(如 Cassandra)是否存在同样的问题?
- 是否有人有任何其他可能合适的建议,例如MogileFS 等?
【问题讨论】:
标签: mysql database web-applications file nosql