¿Cuáles son las diferencias entre los tipos de datos BLOB y TEXT en MySQL?

117

¿Qué es bloby qué es text? ¿Cuáles son las diferencias?

¿Cuándo necesito usar bloby cuándo necesito textcomo tipo de datos?

Porque para bloby text, hay mediumblob== mediumtext, smallblob== small text. ¿Tienen siquiera el mismo significado?

Y mira esto MEDIUMBLOB, MEDIUMTEXT L+ 3 bytes, donde L < 224.

¿Qué es L?

nencor
fuente
Creo que esta publicación responde a su pregunta stackoverflow.com/questions/7071662/mysql-text-vs-blob-vs-clob
earlonrails

Respuestas:

103

TEXT y CHAR se convertirán a / desde el juego de caracteres que han asociado con el tiempo. BLOB y BINARY simplemente almacenan bytes.

BLOB se usa para almacenar datos binarios, mientras que Text se usa para almacenar cadenas grandes.

Los valores BLOB se tratan como cadenas binarias (cadenas de bytes). No tienen juego de caracteres y la clasificación y la comparación se basan en los valores numéricos de los bytes en los valores de las columnas.

Los valores de TEXT se tratan como cadenas no binarias (cadenas de caracteres). Tienen un conjunto de caracteres y los valores se ordenan y comparan según la clasificación del conjunto de caracteres.

http://dev.mysql.com/doc/refman/5.0/en/blob.html

Darcey
fuente
3
entonces, usamos texto para almacenar texto largo como "publicación de wordpress"? y usamos blob para almacenar direcciones URL muy largas? entonces, ¿por qué no usamos varchar para almacenar un texto muy largo en lugar de usar blob o text? porque en el cálculo de la memoria, varchar es realmente simple, por ejemplo, cree el sitio web de la tabla (website_name varchar (30)) y luego llenamos el sitio web "stackoverflow", por lo que la memoria necesaria es 13byte
nencor
5
TEXT será reemplazado por Varchar (MAX) pero por ahora, dependiendo de su versión de mysql, use TEXT para publicaciones de texto grandes, como publicaciones en el cuerpo de un blog, etc. BLOB no debe usarse para almacenar direcciones URL muy largas o grandes cantidades de texto . Normalmente se usa para almacenar imágenes u otros objetos binarios. Personalmente, nunca uso BLOB o TEXT y almaceno grandes cantidades de datos en archivos xml en relación con las carpetas basadas en la identificación del usuario.
Darcey
No entiendo el objeto basado en binarios. ¿Quiere decir que podemos almacenar fotos en la base de datos usando el tipo de datos Blob? como carpeta? todo lo que sé sobre binario es solo 1 o 0.
nencor
1
@nencor Sí, puede almacenar imágenes en bases de datos. También puede almacenar archivos. Pero no puede almacenar una carpeta en una base de datos, porque las carpetas son en realidad características del sistema de archivos. (Sin embargo, eventualmente podría almacenar un sistema de archivos completo, por ejemplo, como un archivo iso en una base de datos)
Martin Thoma
@ martin-thoma Tenemos una aplicación donde el lado del servidor tiene una base de datos MongoDB. El componente móvil de la aplicación utiliza SQLLite. Debe haber una forma de conectar datos entre la base de datos MongoDB y la base de datos SQLLite. MongoDB usa ObjectIds para identificar datos de forma única. Dado que SQLLite (mundo RDBMS) no tiene ninguna forma directa de representar los ObjectIds de MongoDB, me preguntaba si podría almacenar ObjectIds como tipos BLOB. ¿Suena eso como una solución razonable? ¿Reduciría el rendimiento? ¿Habría otros inconvenientes?
CS Lewis
10

TEXT y CHAR o nchar que normalmente se convertirán a texto sin formato para que solo pueda almacenar texto como cadenas.

BLOB y BINARIO, lo que significa que puede almacenar datos binarios, como imágenes, simplemente almacenar bytes.

FRÍO DICHO
fuente
¿Qué quieres decir con almacenar datos binarios como una imagen? ¿quiso decir url de la imagen?
nencor
10

Los tipos de datos de blobs almacenan objetos binarios como imágenes, mientras que los tipos de datos de texto almacenan objetos de texto como artículos de páginas web

Kenny
fuente
7

Un BLOB es una cadena binaria para contener una cantidad variable de datos. En su mayor parte, los BLOB se utilizan para contener la imagen binaria real en lugar de la ruta y la información del archivo. El texto es para grandes cantidades de caracteres de cadena. Normalmente, un blog o artículo de noticias constituiría un campo de TEXTO

L en este caso se utiliza para indicar el requisito de almacenamiento. (Longitud | Tamaño + 3) siempre que sea inferior a 224.

Referencia: http://dev.mysql.com/doc/refman/5.0/en/blob.html

James Williams
fuente
3

Según el libro Mysql de alto rendimiento:

La única diferencia entre las familias BLOB y TEXT es que los tipos BLOB almacenan datos binarios sin colación ni juego de caracteres, pero los tipos TEXT tienen un juego de caracteres y colación.

Alireza Rahmani Khalili
fuente
1

BLOB almacena datos binarios de más de 2 GB. El tamaño máximo de BLOB es 4 GB. Los datos binarios son datos no estructurados, es decir, imágenes, archivos de audio, archivos de vídeo, firma digital

El texto se utiliza para almacenar cadenas grandes.

Abhishek Saha
fuente