Ola, estou precisando guardar imagens no meu banco de dados, Mysql.
Um amigo me disse q seria melhor se eu fizesse uma tabela com as informacoes da imagem e sua url, q n seria viavel guardar a imagem no banco mysql, mas sim em uma pasta do servidor.
Outro amigo me disse para guardar direto no banco, com o tipo BLOB.
Agora estou em duvida, alguem q ja teve essa experiencia podia me dar uma dica?
Vlw!
Geralmente o gargalo de sistemas web está no banco de dados.
Colocar 3374685430573 imagens lá pode não ser a melhor opção. A menos que vc precise (ex: aplicação web clusterizada sem storage compartilhado - o que é raro), eu acho melhor vc guardar em uma pasta protegida do sistema.
Se vc precisa, BLOB nele.
pcalcado
Não sga amigo nenhum, estude para saber as vantagens de cada opção. Só assim você vai entender porque o amigo 02 está certo.
B
brunoja
Mas nimguem com mais experiencia poderia me dizer qual ja usou, pq usou, se deu resultados bons…
Quero opiniao de quem ja usou xD
Vlw!
bandrade
Imagina se você resolver deixar apenas a imagem e o caminho pra ela e resolve mudar de hospedagem. Sai do sistema *nix para o windows… vai funcionar igual?
B
brunoja
Mas eu pensei em deixar apenas o nome do arquivo, por exemplo:
id nome arquivo
1 imagem1 imagem.jpg
Dai o resto, o diretorio da imagem, o servidor q poe, ex: C:\imagens
peczenyj
Se vc souber usar um arquivo de propriedades para colocar o diretorio raíz e usar ‘file.separator’ não vai ter problemas
Se colocar o path hardcoded vc está pedindo pra ter problemas mesmo se migrar de linux pra linux - problemas q vc percebe antes do deploy final com uma suite de testes automatizados
Mas eu pensei em deixar apenas o nome do arquivo, por exemplo:
id nome arquivo
1 imagem1 imagem.jpg
IMHO parece bom, faça uma prova de conceito
spycall
Eu já usei de 3 tipos;
[list]Gardando no banco[/list]
[list]Gardando no no servidor[/list]
[list]E Guardando em um Storage Centera[/list]
isso vai depender da quantidade de imagens, do banco, da estrutura, dos acessos, etc…
Depende.
B
brunoja
peczenyj, n entendi o q vc disse xD, so meio lento msm (IMHO, q isso???).
spycall, vai ter ± umas 2000 imagens, com ± uns 60 acessos por hora, uns 100 estorando.
Estou usando mysql.
T
thingol
Se puser 2000 imagens no mesmo diretório no Windows, você pode ter problemas de tempo de acesso a um arquivo.
Divida as imagens entre vários subdiretórios. (Por exemplo, se você tem imagens com nomes a0001, a0002, … a1998, a1999, a2000 etc, então ponha as imagens cujo nome termina com 0 no subdiretório 0, as cujo nome termina com 1 no subdiretório 1, e assim por diante.)
spycall
O Banco tem backup regularmente, vc tem um servidor onde pode deixar as imagens separadas, se simm, esse servidor tem backup ?
Ps: sou do partido daqueles que acredita que salvar o arquivo em formato blob é melhor.
Dieval_Guizelini
brunoja:
Mas nimguem com mais experiencia poderia me dizer qual ja usou, pq usou, se deu resultados bons…
Quero opiniao de quem ja usou xD
Vlw!
Eu usei as duas técnicas:
neste site: http://www.et.ufpr.br os pdf com os comprovantes de matrícula ficam armazenados no sistema operacional. Tive depois de um tempo que dividir em diretórios (mais ou menos como o thigol falou acima).
e nos sistema do inep estão armazenado em campo blob no Oracle (tamanho aprox hoje de 160Gb). O único cuidado que recomendo é separar o campo blob em uma tabela a parte (em que tenha a chave primária da tabela original e o campo blob apenas).
fw
marciosantri
brunoja:
peczenyj, n entendi o q vc disse xD, so meio lento msm (IMHO, q isso???).
spycall, vai ter ± umas 2000 imagens, com ± uns 60 acessos por hora, uns 100 estorando.
Estou usando mysql.
IMHO = em minha humilde opinião, traduzido do inglês (in my humble opinion).
Coisa de internauta. Eu também fiquei boiando quando vi isto na primeira vez.
polomx
Oi pessoal, alguém tem um exemplo para inserir uma imagem no oracle num campo BLOB?.
Pode guardar a imagem como String no banco, codificando seus bytes com o algoritmo base64 da sun.
Mas será uma boa solução dependendo da resolução da imagem. Se for grande, melhor guardar apenas o caminho da imagem no banco.