Blob y requisito de almacenamiento

Tengo el requisito de almacenar los archivos cargados por el usuario en la base de datos (el sistema de archivos no es una opción).

Los archivos que se cargan son de diferentes tipos (por ejemplo, PDF, EXCEL, etc.).

Tengo un problema para decidir si usar o noMEDIUMBLOB como tipo para almacenar estos archivos como datos binarios.

Y la confusión surge debido al hecho de que el tamaño de estos archivos varía con una gran diferencia. Al igual que algunos de los archivos son unos pocos cientos de kilobytes (por ejemplo, 114 KB), pero algunos otros tienen hasta 1,5 megabytes.

Así que realmente necesito usarMEDIUMBLOB como el tipo de columna. Pero tengo poca confusión, ya que la memoria ocupada depende de la tamaño del archivo cargado en sí ol tamaño del archivo @ se ignora y la memoria se asigna en función del tipo de datos. Esto es realmente importante porque la mayoría de los archivos que se cargarán todos los días (muchos de ellos) tendrán un tamaño realmente pequeño y la memoria (espacio) disponible en el disco es limitada.

Al leer la siguiente sección del documento de MySql:

10.5. Tipo de datos Requisitos de almacenamiento

L representa la longitud real en bytes de un valor de cadena dado.

Data type                  Storage Required
========================================================
TINYBLOB, TINYTEXT  L + 1 bytes, where L < 2 ^ 8
BLOB, TEXT           L + 2 bytes, where L < 2 ^ 16
MEDIUMBLOB, MEDIUMTEXT  L + 3 bytes, where L < 2 ^ 24
LONGBLOB, LONGTEXT  L + 4 bytes, where L < 2 ^ 32

Creo que la memoria utilizada depende del tamaño del archivo real que se carga. es decir, si tengo el tipo de columna comoMEDIUMBLOB y si subo un archivo que tiene 114 KB de tamaño, entonces el único114 KBytes + 3 Bytes de la memoria del disco se usará y no(2 ^ 24) Bytes + 3 Bytes.

¿Estoy pensando bien? ¿O malgastaré mucha memoria de disco almacenando muchos archivos (que tienen un tamaño de 100 a 300 KB) en unMEDIUMBLOB campo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta