Eu pessoalmente recomendo armazenar imagens no banco de dados. Claro que tanto vantagens e desvantagens.
Vantagens de armazenar dados BLOB no banco de dados:
- É mais fácil manter os dados BLOB sincronizados com os itens restantes na linha.
- Os dados BLOB são armazenados em backup com o banco de dados. Ter um único sistema de armazenamento pode facilitar a administração.
- Os dados BLOB podem ser acessados por meio do suporte a XML no MySQL, que pode retornar uma representação codificada em base 64 dos dados no fluxo XML.
- As operações de pesquisa de texto completo (FTS) do MySQL podem ser executadas em colunas que contêm dados de caracteres de comprimento fixo ou variável (incluindo Unicode). Você também pode executar operações FTS em dados formatados baseados em texto contidos em campos de imagem, por exemplo, documentos do Microsoft Word ou Microsoft Excel.
Desvantagens de armazenar dados BLOB no banco de dados:
Considere cuidadosamente quais recursos podem ser melhor armazenados no sistema de arquivos do que em um banco de dados. Bons exemplos são imagens que normalmente são referenciadas via HTTP HREF. Isto é porque:
- Recuperar uma imagem de um banco de dados gera uma sobrecarga significativa em comparação com o uso do sistema de arquivos.
- O armazenamento em disco em SANs de banco de dados geralmente é mais caro do que o armazenamento em discos usados em farms de servidores Web.