2011-09-14 21 views
12

Sto cercando di capire i tipi di dati mysql, ma non ottengo la differenza tra i campi di dati (Var-) BINARY e BLOB-Fields. Qual è la differenza tra questi tipi?MYSQL: Differenza tra binario e blob

risposta

13

I BLOB possono essere grandi quanto vuoi.

Inoltre, la lettura del manuale online di MySQL:

BLOB e TEXT differiscono da VARBINARY e VARCHAR nei seguenti modi:

  • Non c'è rimozione trailing-spazio per colonne BLOB e TEXT quando i valori vengono memorizzati o recuperati. Prima di MySQL 5.0.3, questo differisce da VARBINARY e VARCHAR, per cui gli spazi finali vengono rimossi quando vengono memorizzati i valori .

  • Sui confronti, TEXT è lo spazio esteso per adattarsi all'oggetto confrontato, esattamente come CHAR e VARCHAR.

  • Per gli indici su colonne BLOB e TEXT, è necessario specificare un prefisso indice di lunghezza. Per CHAR e VARCHAR, la lunghezza del prefisso è facoltativa. Vedere la Sezione 7.5.1, "Indicatori di colonna".

  • Le colonne BLOB e TEXT non possono avere valori DEFAULT.

+0

'Grande come vuoi' fintanto che è inferiore a 2^32B (per LONGBLOB). Inoltre: * Le colonne TEXT e * BLOB non sono memorizzate insieme a tutte le altre colonne, quindi accedervi potrebbe essere un po 'più lento, ma sul lato positivo, non contano per 64kB di dimensione massima della riga. – Mchl

3

I tipi binarie e varbinary sono stringhe binarie cui valori effettivi vengono memorizzati nella tabella. I valori effettivi dei tipi blob (e testo) sono memorizzati altrove nel database con un alias di 256 byte su quello slot inserito nella tabella; il blob può quindi essere "qualsiasi" dimensione (fino al massimo).

Problemi correlati