Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é a melhor maneira de armazenar arquivos de mídia em um banco de dados?


Todo sistema que conheço que armazena um grande número de arquivos grandes os armazena externamente ao banco de dados. Você armazena todos os dados que podem ser consultados para o arquivo (título, artista, duração, etc.) no banco de dados, juntamente com um caminho parcial para o arquivo. Quando é hora de recuperar o arquivo, você extrai o caminho do arquivo, acrescenta alguma raiz de arquivo (ou URL) a ele e retorna isso.

Então, você teria uma coluna "local", com um caminho parcial nela, como "a/b/c/1000", que você mapeia para:"http://myserver/files/a/b/c/1000.mp3 "

Certifique-se de que você tenha uma maneira fácil de apontar o banco de dados de mídia para um servidor/diretório diferente, caso precise para recuperação de dados. Além disso, você pode precisar de uma rotina que sincronize novamente o banco de dados com o conteúdo do arquivo morto.

Além disso, se você tiver milhares de arquivos de mídia, não armazene todos eles em um diretório gigante - isso é um gargalo de desempenho em alguns sistemas de arquivos. Em vez disso, divida-os em várias subárvores balanceadas.