将文件另存为MYSQL数据库中的Blob或文件路径

时间:2018-09-11 19:40:37

标签: mysql sql database data-structures blob

我知道这些问题是常见问题之一,但是在特定情况下我需要您的帮助。

我正在开发一个应用程序,其中一些用户可以添加订单,而某些用户可以执行这些订单。这些订单非常具体,因此只能添加数量有限的用户。

然后,每个订单生成三个文档。每个文档的大小不超过1MB,因此我将它们另存为blob,但我不知道将来会发生什么,文档的大小可能会大大增加(例如:5MB )。我该怎么办?为什么?将它们另存为blob或另存为文件路径。

例如:将5MB文件保存为blob在数据库中是一种好习惯,还是从一开始就将它们保存为文件路径更好(如果我知道会发生这种情况) ),或将其另存为blob,如果它们增加了,则将其更改。

对于该项目,我正在使用digitalocean服务器。

1 个答案:

答案 0 :(得分:1)

MySQL可以处理5MB的Blob。如果使用MEDIUMBLOB,则最多可以处理16MB;如果使用LONGBLOB,则可以最多处理4GB。阅读String Type Overview了解详情。

除此之外,将BLOB数据放入数据库中也有相同的利弊。

  • 很多BLOB数据都会使数据库更大。
  • 将所有数据保持在一起意味着单个数据库备份包括所有数据,包括“附件”。
  • 将BLOB放入数据库意味着BLOB数据支持事务隔离,回滚,SQL特权等。如果删除某些行,它也会删除这些行上的BLOB,但是不会自动删除外部文件。