我有点困惑 - 在数据库中存储二进制数据的好处是什么?是出于安全原因,还是有一些更复杂的动机我没看到的吗?谢谢您的时间。
相对于什么?直接放在文件系统里吗?
使用文件系统进行二进制文件存储的缺点包括:
不符合ACID特性;
如果可能在多台服务器上托管应用程序(例如负载平衡、故障转移),则必须想出某种共享文件存储方式,以避免后端不同步;
只使用一个存储后端而不是两个可以简化部署。
因此,仅使用数据库进行存储时,您无需担心为Web用户创建具有写访问权限的文件夹,整个应用程序可以是只读的。如果需要移动应用程序,则可以直接从源代码控制库中检出并将其指向数据库,而无需复制更多的文件数据。您的数据库备份可以覆盖所有内容,而无需进行单独的文件备份步骤等。
另一方面,数据库BLOB存储的缺点包括:
对于非常大的文件来说不太灵活;
您不能免费高效地使用Web服务器来提供文件服务。
将任何东西存储在数据库中具有相同的优点:
我不明白为什么数据是文本还是二进制都没关系,因为数据库给你带来了很多好处。