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.
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?
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
[quote]Mas eu pensei em deixar apenas o nome do arquivo, por exemplo:
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.)
[quote=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![/quote]
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).
[quote=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.[/quote]
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.
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.