Un blob è più efficiente di un varchar per i dati che possono avere QUALSIASI taglia?

9

Quando si imposta un database, voglio utilizzare il tipo di dati più efficiente per dati potenzialmente abbastanza lunghi. Attualmente il mio progetto è quello di memorizzare titoli di canzoni e pensieri relativi a quella canzone. Alcuni titoli potrebbero essere di 5 caratteri o più lunghi di 100 caratteri e i pensieri potrebbero essere abbastanza lunghi.

È più efficiente usare un set varchar su 8000 o usare un blob? L'uso di un BLOB è lo stesso di un varchar, in quanto esiste una dimensione impostata che viene allocata indipendentemente da ciò che contiene? o è solo un puntatore e in realtà non utilizza molto spazio sul tavolo? Esiste una certa dimensione impostata di un BLOB in KB o è espandibile?

    
posta BillyNair 29.06.2012 - 05:41
fonte

2 risposte

12

Suggerisco di utilizzare TEXT su BLOB.

Differenza primaria

  • TEXT e BLOB sono archiviati fuori dalla tabella con la tabella che ha solo un puntatore alla posizione della memoria effettiva.

  • VARCHAR è archiviato in linea con la tabella.

Linea guida primaria

  1. I messaggi in formato testo dovrebbero quasi sempre essere memorizzati come TEXT (finiscono per essere arbitrariamente lunghi)

  2. Gli attributi di stringa devono essere memorizzati come VARCHAR (il nome utente di destinazione, l'oggetto, ecc.).

Per scegliere su quando utilizzare VARCHAR e quando utilizzare TEXT è stato ampiamente discusso in Overflow dello stack in questi thread:

  1. MySQL: Large VARCHAR vs. TEXT?

  2. MySQL varchar (2000) vs testo?

C'è anche un thread di confronto delle prestazioni per questo sul forum MySQL.

    
risposta data 29.06.2012 - 07:17
fonte
0

Penso che dovresti usare il BLOB solo se hai un tipo di dati complesso serializzato, cioè se vuoi memorizzare in una singola tabella una classe complessa. Se si desidera memorizzare solo una stringa (o qualcosa di equivalente) non utilizzare blob.

    
risposta data 29.06.2012 - 08:22
fonte

Leggi altre domande sui tag