Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Subir fotos a la bbdd o subir el enlace del la carpeta

Estas en el tema de Subir fotos a la bbdd o subir el enlace del la carpeta en el foro de Mysql en Foros del Web. Hola a todos. Estoy desarrollando una web en PHP. Estoy en el tema de las fotos, como almacenarlas. Había pensado guardar las fotos en una ...
  #1 (permalink)  
Antiguo 17/11/2011, 06:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Exclamación Subir fotos a la bbdd o subir el enlace del la carpeta

Hola a todos.

Estoy desarrollando una web en PHP. Estoy en el tema de las fotos, como almacenarlas. Había pensado guardar las fotos en una carpeta y en el campo de la tabla de la bbdd almacenar la ruta del archivo.

Tambien tengo la opción que guardar la foto en codigo y almacenarla en un campo Blob. He hecho la prueba y el valor de la foto en codigo ocupa lo mismo que la foto en jpg. Si la foto Jpg ocupa 300kb, el valor del campo blob es de 300kb.

Puestos a pensar en tamaño de la web, ocupa lo mismo la foto en codigo que la foto en jpg, el servidor estará igual de lleno.

Con respecto a seguridad, me parece que almacenar la foto en la bbdd en mas seguro. Nadie podría acceder a la carpera donde están las fotos y robarlas.

Respecto a la base de datos... Ahí dudo en el rendimiento que pueda tener MySql.
Qué es más costoso para la base de datos y el servidor: cargar la foto desde la base de datos u obtener la ruta y a partir de la ruta buscarla en la carpeta donde están todas las fotos?

Gracias.
  #2 (permalink)  
Antiguo 17/11/2011, 07:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Subir fotos a la bbdd o subir el enlace del la carpeta

Cita:
Qué es más costoso para la base de datos y el servidor: cargar la foto desde la base de datos u obtener la ruta y a partir de la ruta buscarla en la carpeta donde están todas las fotos?
Este es un tema recurrente, por lo que te convendría haber usado el buscador del foro para verificarlo. Verías muchas respuestas al tema, y todas llegan a la misma conclusión: Archivos en carpeta de servidor, ruta al archivo en la tabla de la base.
Guardar la foto en la tabla como BLOB sólo agrega bytes a las transacciones. tarde o temprano los del host te drán que hay mucho tráfico, y en realidad será por el exceso de bytes desde y hacia la base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 17/11/2011, 07:21
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Subir fotos a la bbdd o subir el enlace del la carpeta

Bueno eso depende para que quieras utilizar esas fotos, la sobrecarga que le dan al servidor de base de datos, etc.

no se, si fuera una cantidad dinámica y siempre creciente de imágenes almacenadas no confiaría mucho =/, si el servidor de base de datos está físicamente separado del de aplicaciones (o el de host de imagenes, que es una práctica que muchos han estado utilizando) entonces deberás tener en cuenta la capacidad que debe tener ese servidor de base de datos, en almacenamiento, procesamiento, etc.

si lo que quieres es que las imagenes no sean indexadas por los buscadores también es la manera más rápida de hacerla (ojo, la más rápida solamente xD) pero también puedes impedir el ingreso a través de otras técnicas.

lo otro es que tienes que cuidar las consultas en la base de datos, esto es, no traer la imagen si la necesitas.

Además los navegadores traen las imágenes después de haber cargado la estructura de la página, así que deberás pensar también en como mostrar las imagenes si es un archivo aparte, agregándole lógica de acceso, etc.

bueno creo que hay muchos otros puntos de vista y razones del por qué deberías/puedes almacenar en la base de datos o en archivos, a mi parecer este último agrega un poco más de carga al proceso. Analizalo bien y trata de acomodarlo a tus necesidades.

saludos.
  #4 (permalink)  
Antiguo 17/11/2011, 10:03
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Subir fotos a la bbdd o subir el enlace del la carpeta

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Guardar la foto en la tabla como BLOB sólo agrega bytes a las transacciones. tarde o temprano los del host te drán que hay mucho tráfico, y en realidad será por el exceso de bytes desde y hacia la base.
Aunque las fotos las guarde en jpg, las fotos siguen siendo 0 y 1 pero almacenados en otro lugar del servidor (carpeta envar/www/) y el tráfico será el mismo que si se almacenan en la bbdd (carpeta /etc/ - o donde esté mysql).

Si el tráfico es elevado, creo que será porque mucha gente está accediendo al servidor, no porque la foto está guardada en BLOB. ¿Me equivoco?
  #5 (permalink)  
Antiguo 17/11/2011, 10:08
Avatar de azimutisima  
Fecha de Ingreso: mayo-2011
Mensajes: 107
Antigüedad: 12 años, 10 meses
Puntos: 14
Respuesta: Subir fotos a la bbdd o subir el enlace del la carpeta

La cuestion es quien tarda menos en recuperar una imagen y es mas fiable.

1.- La base de datos que accedes a ella para recuperar la imagen completa y la muestras.

2.- El sistema operativo que recupera la imagen atraves del path que le sirve la bd.

Apuesto por lo 2.ndo. El boom de almacenar todo en base de datos llego, vio y se pasó hace tiempo. En cuanto tu bd crezca decaerá el rendimiento de la misma seguro. En cambio al s.o. no le penaliza tanto que haya millones de imagenes en su estructura, al fin y al cabo se diseño para eso (desde su inicio, agregaria), no como las BD.
__________________
Si te gusto mi respuesta anímame a continuar dandome un voto.
  #6 (permalink)  
Antiguo 17/11/2011, 10:24
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Subir fotos a la bbdd o subir el enlace del la carpeta

Digamos que cuando quiera mostrar las imagenes al usuario, sólo se van a cargar un máximo de 4 fotos. Creeis que para cargar 4 fotos el tiempo de ejecución de la BBDD va a ser exageradamente más alto si las saco del BLOB que si las saco del directorio?
  #7 (permalink)  
Antiguo 17/11/2011, 10:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Subir fotos a la bbdd o subir el enlace del la carpeta

Cita:
Aunque las fotos las guarde en jpg, las fotos siguen siendo 0 y 1 pero almacenados en otro lugar del servidor (carpeta envar/www/) y el tráfico será el mismo que si se almacenan en la bbdd (carpeta /etc/ - o donde esté mysql)
El problema de tráfico no es de la red, sino la cantidad de trafico en el servidor de MySQL. Los servicios de hosting miden las dos cosas: El trafico de usuarios accediendo a la página, y el tráfico de datos a la base. Y te ponen límites diferentes.
Además del tráfico, cargar las fotos en las tablas requiere mucho más espacio en l a base que ponerlas en una carpeta, por lo que consumirás eventualmente más rápido la cuota del espacio de base asignado.

Piensalo así: Si todos los servicios de imágenes usan este método, ¿no será porque es el más práctico?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 17/11/2011, 11:04
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Subir fotos a la bbdd o subir el enlace del la carpeta

Y si mi hosting no me pone limite en la bbdd? Es decir, tengo contratados 100MB de transferencia. Esos 100MB da igual a donde vayan a parar, si a trafico bbdd o trafico archivos en el server
  #9 (permalink)  
Antiguo 17/11/2011, 11:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Subir fotos a la bbdd o subir el enlace del la carpeta

Cita:
Iniciado por cslbcn Ver Mensaje
Y si mi hosting no me pone limite en la bbdd? Es decir, tengo contratados 100MB de transferencia. Esos 100MB da igual a donde vayan a parar, si a trafico bbdd o trafico archivos en el server
Unicamente si tu contrato especifica que tengas un servidor dedicado puede que no te pongan límite. Fuera de eso, deberás preguntárselo a ellos.
Pero te repito: Todos los servicios de almacenamiento de imágenes trabajan de esta forma: Archivos en carpetas + rutas en la tabla. Dale las vueltas que quieras, pero terminarás haciendo eso...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 17/11/2011, 11:14
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Subir fotos a la bbdd o subir el enlace del la carpeta

He estado hablando con ellos y me aseguran que el trafico de bbdd contabiliza como trafico general. No discriminan entre bbdd y archivos.

Meditaré sobre cómo lo hago.
  #11 (permalink)  
Antiguo 17/11/2011, 14:22
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Subir fotos a la bbdd o subir el enlace del la carpeta

La indexación por nombre de archivo es mucho más eficiente en el sistema de archivo que en la base de datos por primary key, el sobre poblamiento de la tabla de imágenes podría traerte problemas de performance en un futuro tal vez no muy lejano.

saludos.

Etiquetas: bbdd, enlace, fotos, php, sql, tabla, carpetas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:54.