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

2023-06-02数据库问题
3

本文介绍了在数据库中存储媒体文件的最佳方式是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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

I want to store a large number of sound files in a database, but I don't know if it is a good practice. I would like to know the pros and cons of doing it in this way.

我也考虑过可以链接"到这些文件,但也许这会带来比解决方案更多的问题.欢迎任何这方面的经验:)

I also thought on the possibility to have "links" to those files, but maybe this will carry more problems than solutions. Any experience in this direction will be welcome :)

注意:数据库将是 MySQL.

Note: The database will be MySQL.

推荐答案

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

Every system I know of that stores large numbers of big files stores them externally to the database. You store all of the queryable data for the file (title, artist, length, etc) in the database, along with a partial path to the file. When it's time to retrieve the file, you extract the file's path, prepend some file root (or URL) to it, and return that.

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

So, you'd have a "location" column, with a partial path in it, like "a/b/c/1000", which you then map to: "http://myserver/files/a/b/c/1000.mp3"

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

Make sure that you have an easy way to point the media database at a different server/directory, in case you need that for data recovery. Also, you might need a routine that re-syncs the database with the contents of the file archive.

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

Also, if you're going to have thousands of media files, don't store them all in one giant directory - that's a performance bottleneck on some file systems. Instead,break them up into multiple balanced sub-trees.

这篇关于在数据库中存储媒体文件的最佳方式是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

Mysql目录里的ibtmp1文件过大造成磁盘占满的解决办法
ibtmp1是非压缩的innodb临时表的独立表空间,通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,也就是说在文件系统磁盘足够的情况下,这个文件大小是可以无限增长的。 为了避免ibtmp1文件无止境的暴涨导致...
2025-01-02 数据库问题
151

SQL 子句“GROUP BY 1"是什么意思?意思是?
What does SQL clause quot;GROUP BY 1quot; mean?(SQL 子句“GROUP BY 1是什么意思?意思是?)...
2024-04-16 数据库问题
62

MySQL groupwise MAX() 返回意外结果
MySQL groupwise MAX() returns unexpected results(MySQL groupwise MAX() 返回意外结果)...
2024-04-16 数据库问题
13

MySQL SELECT 按组最频繁
MySQL SELECT most frequent by group(MySQL SELECT 按组最频繁)...
2024-04-16 数据库问题
16

为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同
Why Mysql#39;s Group By and Oracle#39;s Group by behaviours are different(为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同)...
2024-04-16 数据库问题
13

MySQL GROUP BY DateTime +/- 3 秒
MySQL GROUP BY DateTime +/- 3 seconds(MySQL GROUP BY DateTime +/- 3 秒)...
2024-04-16 数据库问题
14