使用BLOB会有什么缺点?

时间:2014-05-10 08:02:49

标签: html5 blob

我希望将视频作为BLOB类型存储在数据库中。 视频将使用渐进式下载进行播放。

我可能遇到任何问题吗? 使用html5视频播放器,它看起来像这样:

<video width="800" height="450" src=BLOB type=""/></video>

3 个答案:

答案 0 :(得分:0)

通过将视频文件存储在数据库中,这意味着每次出现视频请求时都会调用您的数据层,从IO角度来看这也是非常昂贵的,同时考虑到(AFAIK)大多数数据库都没有#&# 39; t让你从偏移量中访问二进制信息,这意味着你无法为消费者提供寻求支持(他们都必须先完全下载视频)。

如果您正在使用任何形式的缓存,那么将视频文件存储在数据库中是可以接受的,具体取决于负载(将为此视频提出多少请求?),因此它不需要经常点击数据库(例如将整个视频存储在memcached中),视频有多大(如果他们只是6秒的Vine风格的视频,那么你就可以侥幸使用它,如果它们是20GB然后可能没有4K高清纪录片视频。

出于好奇,为什么不使用YouTube等第三方视频托管服务或使用CDN托管您的视频文件?

答案 1 :(得分:0)

存储Blob的一些缺点

当您的数据库变得越来越大时,备份将变得更加困难。恢复超过100 GB数据的表的备份并不会让您满意。

另一件事是,随着数据集的增长,所有表管理功能都变得越来越慢。 但是,这可以通过使您的数据表只包含2个字段来解决:ID和BLOB。

检索数据(通过主键)可能只会在您通过备份数据集进入墙后很长时间内成为问题。

答案 2 :(得分:-1)

我们在pas项目中有类似的情况,我们在磁盘上保存了视频和音频,并研究了将它们保存在数据库中是否有任何好处。我们发现文件系统是最简单和最原始的解决方案,只要您有复杂的要求,您的选择就是数据库,但请记住这些:

  1. 保存在磁盘上提供了简单性,即您可以稍后更改文件夹的结构并在它们之间移动文件相对容易。通常,您需要区分音频和视频文件,损坏的文件,文件格式,按日期分组文件等,并将它们保存在子文件夹中。因此,无论何时您需要更多文件夹,您都可以轻松添加它们
  2. 提前考虑保留政策,例如,您将保留30天的最新媒体,然后转移到不同的磁盘或其他任何内容。您需要清楚地了解如何使用数据库实现此目标
  3. CDN。通过服务器传播文件非常容易。使用数据库取决于您的方案,可能更容易或更具挑战性
  4. 数据库会增加开销,因为你不能只通过URI访问文件,需要一些与db通信的中间件代码
  5. 如果您需要分析数据或商业智能支持,交易和索引,数据库将非常有用