sql >> Base de Datos >  >> RDS >> Mysql

MySQL - Base64 frente a BLOB

JSON asume utf8, por lo tanto, es incompatible con las imágenes a menos que estén codificadas de alguna manera.

Base64 es casi exactamente 8/6 veces más voluminoso que el binario (BLOB). Se podría argumentar que es fácilmente asequible. 3000 bytes se convierte en unos 4000 bytes .

Todo el mundo debería ser capaz de aceptar códigos arbitrarios de 8 bits, pero no todo el mundo lo hace. Base-64 puede ser el mejor compromiso más simple y general para no tener que lidiar con datos de 8 bits.

Dado que estos son "pequeños", los almacenaría en una tabla, no en un archivo. Sin embargo, los almacenaría en una tabla separada y JOIN por un id apropiado cuando los necesites. Esto permite que las consultas que no necesitan la imagen se ejecuten más rápido porque no pasan por encima de los BLOB.

Técnicamente, TEXT CHARACTER SET ascii COLLATE ascii_bin haría, pero BLOB deja más claro que en realidad no hay ningún texto utilizable en la columna.