ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Imagens em Banco vs em diretorio

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
tedeski
Novato
Novato


Registrado: Segunda-Feira, 28 de Janeiro de 2013
Mensagens: 96
Localização: São Jose dos Pinhais-PR

MensagemEnviada: Qui Jul 25, 2013 1:26 pm    Assunto: Imagens em Banco vs em diretorio Responder com Citação

Boa tarde, estou desenvolvendo um sistema de transportadora, e estou com a seguinte questão salvar imagem no banco(postgres) ou em um diretorio??
pois gostaria de saber sobre o desempenho de ambos e quais beneficios??

Agradeço desde já. Obrigado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
builder_rs
Novato
Novato


Registrado: Quarta-Feira, 26 de Dezembro de 2007
Mensagens: 88

MensagemEnviada: Sex Jul 26, 2013 6:01 am    Assunto: Responder com Citação

No passado, a questão do tamanho em disco dos arquivos do banco de dados, velocidade da rede, estabilidade, etc. considerava-se uma alternativa manter as imagens fora do banco de dados, deixando as mesmas em um diretório compartilhado na rede.

Nos dias de hoje, usando formatos compactos (jpg ou png) e tratando a imagem antes de gravar no banco de dados, limitando a resolução máxima para evitar que alguém insira fotos gigantes, não terá problemas. Gravar/Ler imagens em SGBDs hoje passou a ser trivial, lembrando que para manter um bom desempenho e baixo consumo de memória é só recuperar os campos em uma query que realmente for usar (nada de select * from para tudo que é consulta).

Quando inserimos a imagem no banco de dados, não será mais necessário ter um diretório compartilhado no servidor e o acesso será tranquilo, podendo recuperar a imagem de qualquer lugar, seja rede local ou remota. Sem falar que terá muito mais controles sobre as alterações (permissões dos usuários) e um processo de backup mais simples.

Abraços,

Anderson:.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
tedeski
Novato
Novato


Registrado: Segunda-Feira, 28 de Janeiro de 2013
Mensagens: 96
Localização: São Jose dos Pinhais-PR

MensagemEnviada: Sex Jul 26, 2013 8:16 am    Assunto: Responder com Citação

Muito obrigado, pela explicação.

builder_rs escreveu:
No passado, a questão do tamanho em disco dos arquivos do banco de dados, velocidade da rede, estabilidade, etc. considerava-se uma alternativa manter as imagens fora do banco de dados, deixando as mesmas em um diretório compartilhado na rede.

Nos dias de hoje, usando formatos compactos (jpg ou png) e tratando a imagem antes de gravar no banco de dados, limitando a resolução máxima para evitar que alguém insira fotos gigantes, não terá problemas. Gravar/Ler imagens em SGBDs hoje passou a ser trivial, lembrando que para manter um bom desempenho e baixo consumo de memória é só recuperar os campos em uma query que realmente for usar (nada de select * from para tudo que é consulta).

Quando inserimos a imagem no banco de dados, não será mais necessário ter um diretório compartilhado no servidor e o acesso será tranquilo, podendo recuperar a imagem de qualquer lugar, seja rede local ou remota. Sem falar que terá muito mais controles sobre as alterações (permissões dos usuários) e um processo de backup mais simples.

Abraços,

Anderson:.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
maizena
Colaborador
Colaborador


Registrado: Terça-Feira, 20 de Março de 2012
Mensagens: 1497
Localização: Laguna - SC

MensagemEnviada: Sex Jul 26, 2013 9:03 am    Assunto: Responder com Citação

builder_rs escreveu:
No passado, a questão do tamanho em disco dos arquivos do banco de dados, velocidade da rede, estabilidade, etc. considerava-se uma alternativa manter as imagens fora do banco de dados, deixando as mesmas em um diretório compartilhado na rede.

Nos dias de hoje, usando formatos compactos (jpg ou png) e tratando a imagem antes de gravar no banco de dados, limitando a resolução máxima para evitar que alguém insira fotos gigantes, não terá problemas. Gravar/Ler imagens em SGBDs hoje passou a ser trivial, lembrando que para manter um bom desempenho e baixo consumo de memória é só recuperar os campos em uma query que realmente for usar (nada de select * from para tudo que é consulta).

Quando inserimos a imagem no banco de dados, não será mais necessário ter um diretório compartilhado no servidor e o acesso será tranquilo, podendo recuperar a imagem de qualquer lugar, seja rede local ou remota. Sem falar que terá muito mais controles sobre as alterações (permissões dos usuários) e um processo de backup mais simples.

Abraços,

Anderson:.


Ótima explicação, POREM vou ter que descordar de ti, gravar imagens dentro de banco de dados pode SIM acarretar problemas, como lentidão nas pesquisas independente de se filtrar o máximo possível na select.
Agora com relação a armazenas as imagens em diretórios não vejo nenhum problema em liberar o acesso VIA SISTEMA para o usuário verificar as fotos, seja ele remoto ou local, basta saber implementar o sistema de forma a manter os arquivos em ordem e íntegros.

Boa sorte.
_________________
Canal Delphi+ INSCREVA-SE: http://www.youtube.com/channel/UCnVF5ly5PRwZONE-U7xZM6w?feature=watch
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
carlosdaniel_delphi
Novato
Novato


Registrado: Sexta-Feira, 17 de Dezembro de 2010
Mensagens: 17

MensagemEnviada: Dom Ago 18, 2013 12:02 am    Assunto: Responder com Citação

Uso Firebird e também tenho um sistema que necessita armazenar imagens, inclusive imagem de alta resolução. No meu caso armazeno em diretório as imagens, mas de forma transparente para o usuário, fiz isso através do protocolo FTP, no servidor tenho um Filezilla rodando e a aplicação em Delphi usa um componente cliente para FTP(Indy).

No banco de dados armazeno apenas o nome do arquivo, que possui sempre um prefixo com base no número da chave primária ao qual pertence, garantindo assim que não sejam sobrescritos. Na verdade é um conceito simples, comum na web, mas muito funcional.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB