Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Armazenar imagens carregadas:Devem ser armazenadas no servidor ou no banco de dados?


Sim, você pode usar BLOBs para dados binários no Oracle. (E muitos outros bancos de dados.) Nós os usamos aqui para armazenar arquivos PDF.

Eu vi isso feito de uma ou das duas maneiras. Armazene as imagens no banco de dados ou armazene as imagens no sistema de arquivos e salve o nome do arquivo no banco de dados.

Vantagens de armazenamento em banco de dados

Está tudo bem lá no banco de dados. Você retira um registro, a imagem associada está ali com ele.

Você obtém integridade de dados entre o arquivo e seus dados associados (supõe-se um bom design de esquema, é claro).

Uma operação lógica para obter dados e imagens.

Acho mais difícil e mais caro dimensionar um banco de dados para armazenar muitos dados binários do que a alternativa do sistema de arquivos.

Desvantagens do armazenamento em banco de dados

Nem todas as ferramentas facilitam a navegação nas imagens.

Não é possível acessar facilmente as imagens da web.

Dependendo do tamanho e da quantidade do arquivo, você pode acabar com muitos dados brutos em algumas de suas tabelas.

Carregar e armazenar dados de blob nem sempre é simples. (Recentemente, escrevi um tipo de dados personalizado para o Hibernate, por exemplo, para lidar com nossos PDFs blobbados.)

Vantagens do sistema de arquivos

Provavelmente mais eficiente para ler e gravar os arquivos.

Se você quiser servir a imagem na web, você pode fazer isso diretamente do sistema de arquivos.

Mais fácil de navegar pelas imagens durante a depuração e muitas ferramentas gratuitas para fazer isso.

Acredito que seja mais fácil dimensionar um aplicativo ao colocar blobs no sistema de arquivos.

Desvantagens do sistema de arquivos

Problemas de integridade/consistência de dados. Altere algo sobre a estrutura do arquivo e você terá outra etapa a fazer no banco de dados.

Outra coisa é fazer backup.

Múltiplas operações lógicas (leitura do banco de dados, leitura do sistema de arquivos) para obter imagens e dados.