将文件保存为MYSQL数据库中的blob或文件路径

问题描述 投票:3回答:1

我知道这些问题是常见问题之一,但我需要你的帮助才能得到具体案例。

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

然后,为每个订单生成三个文档。每个文档的大小不超过1MB所以我将它们作为blob保存在我的数据库中,但我不知道将来会发生什么,文档的大小可能会显着增加(例如:5MB )。我该怎么办?为什么?将它们保存为blob或将它们保存为文件路径。

例如:在数据库中保存5MB文件作为blob是不错的做法,还是最好从头开始将它们保存为文件路径(如果我知道这可能发生),或将它们保存为blob并且如果它们增加而不是更改它。

对于这个项目,我使用的是digitalocean服务器。

mysql sql database data-structures blob
1个回答
1
投票

MySQL可以处理5MB blob。如果你使用MEDIUMBLOB它可以处理高达16MB,如果你使用LONGBLOB它可以处理高达4GB。阅读String Type Overview了解详情。

除此之外,同样的优点和缺点适用于将BLOB数据放入数据库。

  • 当然,大量的BLOB数据使数据库更大。
  • 将所有数据保持在一起意味着单个数据库备份包括所有数据,包括“附件”。
  • 将BLOB放在数据库中意味着BLOB数据支持事务隔离,回滚,SQL权限等。如果删除某些行,它还会删除这些行上的BLOB,但不会自动删除外部文件。
© www.soinside.com 2019 - 2024. All rights reserved.