Qual A Vantagem De Se Gravar Uma Imagem No Mysql?
#1
Posted 07/03/2006, 09:42
Estava lendo um artigo do Júlio César Martini, do iMasters, e lá tem mostrando como gravar uma imagem no banco de dados.
Mas qual seria a vantagem?
Eu acho que não teria muita vantagem não, já que o tráfego seria o mesmo e com isso não teríamos uma "organização" com os arquivos de imagem.
- Miguceamma likes this
#2
Posted 07/03/2006, 09:45
gravando a imagem em arquivo, sempre que vc apagar um registro e quiser apagar a imagem(ou imagens) relacionada a ele, tem que usar o unlink e tal...
vai de cada um saber o metodo que mais se encaixa pro projeto que está fazendo
๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑
#3
Posted 07/03/2006, 10:20
Um comentário adicional:
Qualquer projeto de sistema, trará excelentes resultados a partir do momento em que seu projeto tenha sido bem estruturado.
Usualmente observo algumas pessoas usando/sugerindo que se crie uma tabela onde são armazenadas as informações sobre a imagem e acabam criando um diretório onde guardam esses arquivos.
Boa parte desse processo, gera tempo de programação para garantir a manutenção dessas imagens, sejam nas inclusões, exclusões e alterações.
Além disso, é comum se verificar o crescimento contínuo dessas áreas (diretórios de imagens), pois com frequência, as pessoas lembram deapagar a referência na Tabela, e esquecem de apagar a imagem do diretório, pois ao apagar da Tabela nenhum outro usuário irá acessá-la mesmo.
A partir disso, e do comentário do Stormbringer, reforço a idéia de que as facilidades de se administrar um banco de imagens, são bem maiores do que as de gerir uploads de imagens em diretórios.
Adicionalmente, "organizar" informações num banco de dados (imagens) é bem mais eficaz do que da forma usualmente adotada, mesmo quando se usa uma Tabela para lançar registros de referência da localização da imagem em diretórios.
Tive a oportunidade de discutir estas questões com participantes do Forum Internacional de Software Livre que ocorreu em 2005, e com palestrantes que conversei, pode-se concluir que a falta de conhecimento sobre a manipulação de imagens em bancos de dados, é o fator que mais contribui para que seu uso seja reduzido, ou encoberto por um pouco de misticismo (tamanho do banco, tempo de resposta e outras coisas mais).
Espero ter colaborado para formação de sua opinião sobre o assunto.
Um abraço.
#4
Posted 07/03/2006, 13:27
Concordo com nandotrade , realmente o gerenciamento apenas atraves de banco facilita muito a vida e a codificacao, mas eh valido lembrar que problemas como nosso amigo nandotrade citou nao devem ocorrer com desenvolvedores que se preocupam com desenpenho , "limpeza", que se preocupam em fazer um bom sistema , sem quebra-galhos ou "vou deixar aqui pq ninguem vai ver", pq um dia alguem pode ver e isso pode ser decisivo (falei bonito )
Resumindo , acredito que tudo vai de sua necessidade, e de sua solucao diante do problema , eh sentar e pensar e independete doque escolher procurar fazer da melhor maneira possivel
[]s
inte
UH Terêrê ... Voltei!
#5
Posted 07/03/2006, 15:50
Pode vir a ter problemas mais a frente com sobrecarregamento, backup, tamanho do banco, etc?
Gostaria de saber isso, se alguem souber!!
Até
#6
Posted 07/03/2006, 16:33
Nosso sistema pode receber milhares de visitas e as pessoas em sua maioria se interessam por um determinado assunto , e la vao elas querendo ter acesso a suas imagens , apesar de seu bd poder suportar multiplas conexcoes , eh evidente que dependendo da maquina em que ele se encontra e da capacidade de rede , seu sistema pode ficar mais lento. Sao multiplos requerimentos ocorrendo em uma tabela que pode estar ocupando alguns megas por exemplo , e bits e bits trafegando pela rede.
Sem contar que seu BD pode estar atendendo outros pedidos e etc...
Uma coisa que vejo agora que mudei um pouco de area , eh que no php , diferente de muitas linguagens para internet ou nao , o gargalo dos sistemas em sua maioria esta na rede e na resposta do banco de dados, ou seja , se analisarmos o desempenho de um sistema baseado em php tera uma alta porcentagem de tempo gasto referente a resposta do banco de dados , o php em si gasta pouco.
Me lembro que tive uma vez um sistema em minha mao (este eh um caso extremo) , onde ele deveria fazer um sql muitcho loko , em 3 tabelas , as 3 tabelas juntas tinham mais de 18 gigas (isso mesmo , GIGA), o banco era oracle , mas nome nao faz tudo , mesmo com estudo em cima do sql (inclusive aplicando tecnicas de tunning) nao conseguimos uma resposta melhor doq 55 segundos. (que ja foi um milagre)
Fizemos um programinha para medir desempenho , o banco ficou com 98% do tempo.
Como disse paes , eh relativo ao problema que vc esta enfrentando , nesse meu caso extremo nao existiam imagens , era informacao do tipo char pura , mas imagine se vc tem uma perspectiva de crescimento do seu banco , de uma alta taxa de transferencia , vc tera alem que descidir sobre utilizar imagem no banco ou nao , verificar toda sua estrutura , servidores , configuracao , mao de obra especializada (um bom DBA sempre ajuda)
Bom eh more less isso , qq coisa , duvida , escreva
[]s
Edição feita por: Peri, 07/03/2006, 16:36.
UH Terêrê ... Voltei!
#7
Posted 07/03/2006, 19:53
Sinceramente, não vejo, na maioria dos casos, uma grande vantagem de se guardar as imagens em banco de dados.
Prefiro deixá-lo livre para o "transporte" de informações mais importantes como logs, buscas, enfim, dados do tipo "texto".
Mas sou suspeito de dizer, já que nunca fiz um teste guardando imagens no banco.
Por isso perguntei sobre os problemas que pode causar.
Até
#8 .Eduardooo
Posted 07/03/2006, 20:21
Aprendi no curso de PHP ali no Senac do Centro que gasta muito espaço gravando imagens no BD, fica muito pesado e tal.
#9
Posted 08/03/2006, 09:00
o espaço que se gastra gravando as imagens no BD é a mesmo que guardar diretamente em arquivos...Se tu quiser entupir seu banco de dados vai fundo.
Aprendi no curso de PHP ali no Senac do Centro que gasta muito espaço gravando imagens no BD, fica muito pesado e tal.
se a imagem tem 100 k, vai ocupar 100 k no banco, ou 100 k no arquivo...
o que paes e peri estavam discutindo é somente a velocidade de acesso...
acesso a um arquivo(considerando tipo binário) é mais rapido que um acesso ao BD? sim, porque?
no caso de arquivo de imagem, o arquivo já está pronto e esperando pra trafegar... se a imagem estiver no bd, tem que levar o ponteiro até o registro dela, carregar a informação binária da imagem pra memória e só entao o php vai envia-la pro browser informando seus headers...
ou seja, tudo depende... se vc quer fazer uma agenda com fotos dos seus amigos e eventualmente uma fotinho ou outra de um evento dentro de um calendário, talvez gravar no BD nao seja tão crítico... mas depende muito do volume de acessos e do volume de informaçoes
๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑
#10
Posted 29/05/2006, 16:15
Só uma pergunta... Como ficaria o endereço da imagem, estando ela dentro do banco de dados ?! E ela seria acessivel a qualquer pessoa, ou seria necessário logar-se, ou coisa do genêro ?!
Abraço.
#11
Posted 30/05/2006, 10:17
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)