armazena imagens no banco de dados - SQL Server 2008

3

Baseado no meu entendimento, existem 3 maneiras de fazer isso.

  1. Filestream
  2. Sistema de arquivos
  3. Armazenar imagens no próprio banco de dados

Estou tendo dificuldade em decidir qual deles seria mais apropriado para mim.

Eu terei muito mais leituras do que escritas, mas as gravações também não seriam completamente raras.

Todas as imagens teriam menos de 1 MB, com certeza, mas normalmente seriam em torno de 50KB.

    
por TPR 16.02.2010 / 01:48

2 respostas

2

Não armazene suas imagens no banco de dados, ou dados binários de maneira alguma, se isso puder ser evitado. Não pertence a um banco de dados. Armazene as imagens em seu sistema de arquivos e despeje um ponteiro em seu banco de dados com todos os metadados associados (tipo de arquivo, tamanho, data, etc.).

Ao fazer isso, você precisará tomar algumas precauções. Primeiro, você precisará evitar as colisões de nome de arquivo de alguma forma (talvez salve o arquivo usando um id de arquivo substituído pelo nome real do arquivo). Segundo, certifique-se de que você não terá muitos arquivos em um único diretório. Isso pode levar a problemas de desempenho.

    
por 16.02.2010 / 01:56
2

A resposta é, depende. Eu precisaria saber mais sobre a natureza exata do seu aplicativo. Você está à beira de usar o filestream vs armazenar imagens no banco de dados. Consulte este artigo do MSDN para uma discussão completa dos prós e contras de cada abordagem. Acho que o maior ponto de decisão será o desempenho de pequenas atualizações freqüentes.

    
por 16.02.2010 / 02:23