当前位置: 首页 > 面试题库 >

在数据库上存储媒体文件的最佳方法是什么?

柳弘方
2023-03-14
问题内容

我想在数据库中存储大量声音文件,但是我不知道这是一个好习惯。我想知道这样做的利弊。

我还考虑了与这些文件建立“链接”的可能性,但这也许会带来比解决方案更多的问题。对此方向的任何经验都将受到欢迎:)

注意:数据库将是MySQL。


问题答案:

我所知道的每个存储大量大文件的系统都将它们存储在数据库的外部。您将文件的所有可查询数据(标题,艺术家,长度等)以及文件的部分路径存储在数据库中。当需要检索文件时,您可以提取文件的路径,在其前面添加一些文件根(或URL),然后将其返回。

因此,您将有一个“位置”列,其中包含部分路径,例如“ a / b / c / 1000”,然后将其映射到:“ http:// myserver /
files / a / b / c /1000.mp3

确保您有一种简便的方法将媒体数据库指向其他服务器/目录,以防万一需要进行数据恢复。另外,您可能需要一个例程,该例程将数据库与文件归档的内容重新同步。

此外,如果您要拥有成千上万个媒体文件,请不要将它们全部存储在一个巨型目录中-这是某些文件系统上的性能瓶颈。而是将它们分解为多个平衡的子树。



 类似资料:
  • 问题内容: 在MySQL数据库中存储IP地址的最佳字段类型和长度是什么? IPv6呢? 问题答案: 将IP存储为,然后使用和功能存储/检索IP地址。 样例代码:

  • 我有一个游戏,在MySQL数据库中存储boss在简单模式和硬模式下的杀人记录。有14个老板。我想存储一个球员杀死一个老板的次数和难度。我有几个选择,我可以看到。。 为每个boss以及每个难度在表中创建一个单独的列。例如。 创建两个存储数字序列的字段,这些数字可以稍后提取出来,以便在PHP中进行比较。其中easykills是一个由28个字符组成的字符串,每2个字符就有一个计数器,用于计算boss被杀

  • 问题内容: 我的简化人为示例如下: 可以说,我想每天测量和存储世界上所有城镇的温度(和其他值)。我正在寻找一种存储数据的最佳方式,以使获取所有城镇中的当前温度与获取一个城镇历史上的所有温度一样容易。 这是一个很容易解决的问题,但我正在寻找最佳解决方案。 我能想到的2个主要选项如下: 将所有当前记录和归档记录存储在同一表中。 IE 这将使所有事情变得简单,但是最有效的查询是获取城镇列表和当前温度的列

  • 我有一个存储库层,有许多方法组合,以匹配搜索标准…重用这个标准的最佳方法是什么?我认为像FindByNameAndidandBirthdayandAccouncAnumber这样的方法名称不是一个好主意!谢了! }

  • 我想创建一对多的映射,就像Post有很多评论一样。我有两种添加评论的解决方案。第一种解决方案是为评论创建一个存储库,第二种解决方案是使用PostRepository并获取post并将评论添加到帖子中。每个解决方案都有自己的挑战。 在第一种解决方案中,为每个实体创建存储库会过多地增加存储库的数量,并且基于DDD,应该为Aggregate Roots创建存储库。 在第二个解决方案中,存在性能问题。若要

  • 问题内容: 我正在尝试确定通过JDBC ping数据库的最佳方法。“最好”是指快速且低开销。例如,我考虑过执行以下命令: 但是我相信DUAL表是特定于Oracle的,并且我需要一些更通用的东西。 请注意,它具有一个方法,但是javadoc指出该方法不能用于测试连接的有效性。 问题答案: 是的,那只能是Oracle,但是在JDBC中没有通用的方法可以做到这一点。 大多数连接池实现都有一个配置参数,您