Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/03/2015, 06:24
Avatar de gnzsoloyo
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: Base de datos de un Banco de Reactivos

Bueno, a tu docente le puedes responder que es técnicamente posible, pero no es recomendable, especialmente si los usuarios que acceden a la base en ese caso (usuarios propios de MySQL) tienen restricciones de cuotas de datos, o bien si el buffer de consultas es restringido y no se puede modificar.
Para que se entienda:
- Es muy fácil y habitual en los hosting que te limiten la cuota de datos en la base para operaciones I/O. Con eso evitan que el motor sobrecarge el uso de memoria, que se necesita para el resto de las consultas de otros usuarios.
- Como cada bloque de datos que el motor recupera tiene un límite de tamaño almacenable en unidades, y mientras más datos en bytes se recuperen, más bloques de datos se deberán usar para transferir. Ergo, almacenar una imagen en una tabla ocupa en un ínico campo BLOB, muchas veces más bloques de datos que lo que se requiere para recuperar 1.000.000 de registros de otras consultas que obtienen datos alfanuméricos.
¿Se entiende?
- Además, una consulta de ese tipo podría intentar buscar do o más imágenes al miemso tiempo... imagina el impacto de eso.
- Todo lo que se recupera en las consultas, además de requerir espacio de memoria del servidor, requiere el uso del buffer de consultas, donde se almacena antes de ser derivado al cliente (aplicacion) que lo solicitó. Usualmente no suele configurarse un buffer de consultas demasiado grande, por lo que la recuperación de campos BLOB puede requerir varios ciclos de transferencia antes de entregar todo.
Trata de hacerte una idea de lo que implicaría para la performance del DBMS dedicar exclusivamente el buffer a la transferencia de imagenes... y lo que le puede pasar a los demas usuarios que estén accediendo al DBMS al mismo tiempo (concurrencia).

En definitiva, guardar imagenes en la tabla no es imposible, ni es difícil. Pero es una pésima estrategia de diseño.
Por eso es preferible guardar las rutas, y dejar que el WebServer se encargue de recuperar y transferír el archivo a la aplicación por FTP...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)