mysql - 在数据库中存储媒体文件的最佳方式是什么?

标签 mysql database audio multimedia

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

我还考虑过为这些文件提供“链接”的可能性,但也许这会带来比解决方案更多的问题。欢迎任何这方面的经验:)

注意:数据库将是 MySQL。

最佳答案

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

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

确保您有一种简单的方法将媒体数据库指向不同的服务器/目录,以防您需要它来进行数据恢复。此外,您可能需要一个将数据库与文件存档内容重新同步的例程。

另外,如果您要拥有数千个媒体文件,请不要将它们全部存储在一个巨大的目录中——这对某些文件系统来说是一个性能瓶颈。相反,将它们分解为多个平衡的子树。

关于mysql - 在数据库中存储媒体文件的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/154707/

相关文章:

android - 需要关于在安卓/非安卓设备之间通过 A2DP 发送/接收音频的想法

php - foreach 在同一行上获取不同的值和多个结果

mysql - Zend Framework 和 Mysql - 非常慢

java - 使用联接将表 2 和表 3 中的数据添加到表 1 时出现 MySQL 查询问题

javascript - 将表名设置为 Web 数据库的变量?

PHP 在 HTML 中获取和回显

sql - 在 Access 中更新部分记录

php - 你好!我正在尝试使用联系表 7 在我的 mysql 数据库中插入行

flutter - flutter声音流如何表示pcm数据?

java - 在Android Studio中添加声音输出后的延迟