2011-11-21 10 views
9

C'è un tipo di colonna denominato blob nel database e viene utilizzato per memorizzare dati binari.dati binari nel database, blob vs base compressa64

Ma il più delle volte, vedo soluzioni che comprimono dati binari, quindi convertono dati binari in base64 e memorizzano la stringa base64 come varchar o testo nel database.

codice

Python esempio:

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

Quindi ci sono due modi per memorizzare dati binari in database:

  1. come blob
  2. come Base64 compressa

Le mie domande è : Qual è il modo migliore e perché?

+4

Non vedo perché qualcuno dovrebbe utilizzare il metodo 2. Introduce complessità inutile e confonde i dati due volte. Tuttavia, non invierò questa risposta perché non ho prove concrete del fatto che non ci siano casi in cui la base compressa64 è vantaggiosa rispetto a 'BLOB'. – Polynomial

risposta

12

Sembra che io debba rispondere alla mia stessa domanda. La maggior parte delle volte, la memorizzazione di base64 compressa nel database non è una buona idea. È complesso rispetto alla memorizzazione di BLOB. E la maggior parte delle volte, il binario è più piccolo della stringa base64.

Trova solo un caso che base64 compresso sia utile: non è possibile modificare lo schema della tabella e sono presenti solo colonne di testo, è necessario memorizzare i dati binari in tale tabella. L'unico modo possibile è convertire la stringa binaria in base64.

+3

Non sapevo che avresti potuto rispondere e accettare la tua domanda, ma ben fatto! –

Problemi correlati