Para alguien que conoce los aspectos internos de la base de datos, esta puede ser una pregunta fácil, pero ¿alguien puede explicar de manera clara por qué se supone que almacenar grandes blobs (digamos películas de 400 MB) en la base de datos disminuye el rendimiento y qué significa eso exactamente? Este es un reclamo que a menudo se encuentra en Internet, pero nunca lo he visto realmente explicado.
Para ser específicos, me refiero al rendimiento de SharePoint / MSSQL, es decir, el rendimiento de carga de archivos, la exploración del sitio, la visualización de listas, la apertura de documentos, etc., operaciones que se dice que se vuelven más lentas una vez que una base de datos se vuelve demasiado grande. Se supone que la externalización de blobs en el sistema de archivos (que en SharePoint se llama Remote Blob Storage, también conocido como mover archivos fuera de la base de datos, dejando solo una referencia) resuelve esto hasta cierto punto, pero ¿cuál es exactamente la diferencia? Es obvio que las copias de seguridad tomarían más tiempo con archivos gigantes almacenados en la base de datos ... pero ¿qué operaciones se ven afectadas exactamente y cuál es el mecanismo subyacente (es decir, de qué manera se accede a los archivos almacenados en el sistema de archivos fuera de la base de datos o se almacenan de manera diferente)?
Suponga que una tabla simple que contiene columnas ID(guid, PK), FileName(string), Data(varbinary(max))
: ¿una Data
columna grande realmente ralentizaría las operaciones, como mostrar una lista de archivos en un sitio web (lo que supongo internamente significa ejecutar SELECT FileName FROM table
) o insertar una nueva fila? No es que las columnas de contenido binario real estén indexadas.
Sé que ya se han hecho algunas preguntas como esta, pero no he encontrado una explicación adecuada.