为什么在 MySQL 中存储二进制数据?

Arn*_*hor 4 mysql database

我有点困惑 - 在 DB 中存储二进制数据的优点是什么?是出于安全原因,还是有一些我看不到的更复杂的动机?

谢谢你的时间。

bob*_*nce 5

与什么相反?把它放在文件系统中?

将文件系统用于二进制文件存储的缺点是:

  • 您没有获得 ACID 合规性;

  • 如果您可能在多个服务器上托管应用程序(例如负载平衡、故障转移),您必须制定某种共享文件存储以避免后端不同步;

  • 只有一个存储后端而不是两个使部署更简单。

因此,使用仅数据库存储,您不必担心为 Web 用户创建具有写访问权限的文件夹,整个应用程序可以是只读的。如果您需要移动应用程序,您只需将其从源代码管理中检出并将其指向数据库,而无需复制更多文件数据。您的数据库备份可以涵盖所有内容,而不必有单独的文件备份步骤。等等。

另一方面,数据库 BLOB 存储的缺点:

  • 对于非常大的文件来说很笨拙;

  • 您无法免费使用 Web 服务器来高效地提供文件。