Salvar uma imagem no banco de dados ou em uma pasta

1,430 views
Skip to first unread message

Cássio Talle

unread,
Jul 3, 2008, 10:36:10 AM7/3/08
to Cake PHP Português
Olá pessoal, estou desenvolvendo um aplicativo com o cake que contará
com umas 50000 imagens tipo jpg com uns 15kb cada uma.
Por uma questão de performasse (agilidade) qual opção seria melhor,
salvá-las em um banco de dados como blob e acessá-las através de
consultas, ou salvá-las em diretórios e acessá-las através do seu
endereço.

Valeu...

Abraço!

Gabriel Gilini

unread,
Jul 3, 2008, 10:49:24 AM7/3/08
to cake-...@googlegroups.com
O acesso direto a disco sempre é mais rápido que consulta a um banco de dados.

Abraços

2008/7/3 Cássio Talle <cassio...@gmail.com>:



--
Gabriel Gilini

gabrie...@gmail.com
gab...@usosim.com.br
gab...@souagil.com.br

Michael Mafort

unread,
Jul 3, 2008, 10:54:16 AM7/3/08
to cake-...@googlegroups.com
Mas uma das vantagens de gerenciar por DB é simplesmente pq ele foi feito para isso e tornaria este trabalho mais simples.
Mas em questão de performance por FS seria mais interessante.

2008/7/3 Gabriel Gilini <gab...@usosim.com.br>:

João José Pedrini

unread,
Jul 3, 2008, 10:54:33 AM7/3/08
to cake-...@googlegroups.com
Eu escolheria pastas,

Pense que o OVERHEAD que você terá buscando no banco + o próprio OVERHEAD do CakePHP só trará complicações. O sistema de arquivos é incomparavelmente mais rápido.

Eu sinceramente não vejo muita utilidade no BLOB como armazenamento de arquivos, acho que não é vantagem nenhuma, é só mais uma maneira de realizar uma mesma solução. Acredito que o motivo de se ter esse tipo de dados não foi como uma solução de armazenamento e sim uma forma de unificar os dados, ter todos eles num mesmo servidor. Portanto, se isto não for requisito para seu sistema, utilize armazenamento em pastas.

Abraços.


Maury

unread,
Jul 3, 2008, 11:09:57 AM7/3/08
to Cake PHP Português
Sempre optei por arquivos em pastas.

Na minha opinião é mais dinâmico e mais rápido,
pois não fica pesando nas tranzações do banco.

Abraços

Cássio Talle

unread,
Jul 3, 2008, 11:31:22 AM7/3/08
to Cake PHP Português
Pois é parece que é unanimidade...

Valeu pelo esclarecimento!!!

Juan Basso

unread,
Jul 3, 2008, 12:10:40 PM7/3/08
to Cake PHP Português
Opinião: pasta, sem dúvida.

Pedrini: O motivo da criação do BLOB, entre outros, é que há sistemas
que podem não ter muitos privilégios para gravar arquivos ou mesmo o
servidor de aplicação não comportar a armazenagem de tantos arquivos
em sistemas maiores. Com isso, você pode guardar os arquivos no banco
de dados. Outro motivo também é pela "segurança", onde os dados vão
ficar cifrados.


Juan Basso

Josenivaldo Benito Junior

unread,
Jul 3, 2008, 12:28:23 PM7/3/08
to cake-...@googlegroups.com
Pasta, sem dúvidas também.


Juan: eu acrescentaria a facilidade em distribuição de carga. Com BD é mais simples. (não estou falando em RAID para FS).

Porém, usar o BLOB gera dores de cabeça com alguns hospedeiros de sites. Você gera uma baita carga no BD e os "DBAs" profissionais desses datacenter ligam para você dizendo "Você vai acabar com meu BD". Portanto vá de pastas e seja feliz.

Abraço,
Benito.

2008/7/3 Juan Basso <jrb...@gmail.com>:



--
Josenivaldo Benito Junior. PU2LBD
Organizador do Concurso Brasileiro de 144 MHZ - CB144 (em conj. com
PY2BRZ e PY2HCD)
http://www.gbvudx.qsl.br
Assine a Lista de e-mails do GBVUDX:
http://www.gbvudx.qsl.br/refletor_gbvudx.asp

Luzio Filho

unread,
Jul 3, 2008, 12:34:22 PM7/3/08
to cake-...@googlegroups.com
Mas têm servidores que não aceitam gravar em disco rígido pelo php. Só via ftp ou banco de dados. Uma aplicação minha recentemente tive que modificar pq, segundo eles, por políticas de segurança, só podia gravar no banco de dados (qualquer arquivo) e não mais em pastas no servidor. Mas se tiver a opção de escolha, sem dúvidas nenhuma eu prefiro 'pasta'.



2008/7/3 Josenivaldo Benito Junior <jrbe...@benito.qsl.br>:



--
Luzio Filho
Designer gráfico e Web Developer
msn: luzio...@hotmail.com
cel.: (091xx-81692841)

Marcelo Andrade

unread,
Jul 3, 2008, 4:12:31 PM7/3/08
to cake-...@googlegroups.com
Olá a todos!

2008/7/3 Juan Basso <jrb...@gmail.com>:
>
> Opinião: pasta, sem dúvida. (..)

Bem, eu também concordo que colocar as imagens em pastas e apenas
guardar o caminho no banco é mais fácil e simples. Mas fazendo o
papel de advogado do diabo, como fica a questão da integridade? Se,
por acaso, alguma imagem se perde ou se corrompe no disco, o fato de
ter o caminho armazenado no banco não ajuda em nada.

Há muito tempo lembro-me de ter lido um artigo na web (não sei se
era algo que já existia) sobre a possibilidade de se buscar arquivos de
imagens em formato binário via sql direto, se referindo a elas no SELECT
através de propriedades como brilho, saturação, nível de cor, etc. Alguém
sabe de algo nesse sentido?

Atenciosamente.

--
MARCELO DE F. ANDRADE
Belém, PA, Amazônia, Brasil
Linux User #221105

Conheça "A Turma do Açaí"(c) de Rosinaldo Pinheiro.
http://aturmadoacai.blogspot.com

Juan Basso

unread,
Jul 3, 2008, 5:41:30 PM7/3/08
to Cake PHP Português
Andrade,

Realmente isso existe. São os "novos" modelos de banco de dados, que
são orientados a objetos. Um exemplo disso é o Caché (http://
www.intersystems.com/cache/).

Quanto a integridade, você sempre vai achar um furo, mas para ajudar
nisso, como estamos usando uma arquitetura MVC, o Model é quem deve
garantir a integridade dos dados. Uma das coisas é colocar no
AfterFilter uma verificação se o arquivo existe. Se não existir, limpa
o campo, retorna null, aí vai de você...

Trabalhar com imagens no banco de dados é sempre bucha e você vai ter
sempre o overhead do cake.


Juan Basso



On 3 jul, 17:12, "Marcelo Andrade" <mfandr...@gmail.com> wrote:
> Olá a todos!
>
> 2008/7/3 Juan Basso <jrba...@gmail.com>:

João José Pedrini

unread,
Jul 3, 2008, 5:45:11 PM7/3/08
to cake-...@googlegroups.com
Olá Marcelo,

Ouvi falar sobre isso, mas a procura não é "escovação de bits" a cada SELECT, geralmente nesses processos de indexação é feito um processamento na inserção para extrair essas informações e armazena-las de forma coerente no banco. Neste caso não importa se a imagem esta no banco ou no arquivo.

Queria só esclarecer que não sou contra utilizar o banco de dados. Existem casos onde é necessário, só não presenciei muitos.

Abraços.
Reply all
Reply to author
Forward
0 new messages