2011-11-21 22 views
9

Hay un tipo de columna denominado blob en la base de datos, y se usa para almacenar datos binarios.datos binarios en la base de datos, blob contra comprimido base64

Pero la mayoría de las veces, veo soluciones que comprimen datos binarios, luego convierten datos binarios a base64 y almacenan cadena base64 como varchar o texto en la base de datos.

Python ejemplo de código:

import zlib, base64 
base64_str = base64.b64encode(zlib.compress(binary_data, 9)) 

Así que hay dos formas de almacenar datos binarios en la base de datos:

  1. como blob
  2. como base 64 comprimido

Mi pregunta es : ¿Qué camino es mejor y por qué?

+4

No veo por qué alguien usaría el método 2. Introduce una complejidad innecesaria y ofusca los datos dos veces. Sin embargo, no voy a publicar esto una respuesta porque no tengo ninguna evidencia contundente de que no haya casos donde base64 comprimido sea beneficioso sobre 'BLOB'. – Polynomial

Respuesta

12

Parece que tengo que responder mi propia pregunta. La mayoría de las veces, almacenar base64 comprimido en la base de datos no es una buena idea. Es complejo que almacenar blob. Y la mayoría de las veces, el binario es más pequeño que la cadena base64.

Solo encuentro un caso que la base64 comprimida es útil: no se puede alterar el esquema de la tabla, y solo hay columnas de texto, debe almacenar datos binarios en esa tabla. La única forma posible es convertir cadenas binarias a base64.

+3

¡No sabía que podía responder y aceptar su propia pregunta, pero bien hecho! –

Cuestiones relacionadas