Quelles sont les différences entre les types de données BLOB et TEXT dans MySQL?

117

Qu'est- blobce que c'est et qu'est-ce que c'est text? Quelles sont les différences?

Quand dois-je utiliser blobet quand ai-je besoin textcomme type de données?

Parce que pour blobet text, il y a mediumblob== mediumtext, smallblob== small text. Ont-ils même la même signification?

Et regardez ceci MEDIUMBLOB, MEDIUMTEXT L+ 3 octets, où L < 224.

Qu'est-ce que c'est L?

nencor
la source
Je pense que cet article répond à votre question stackoverflow.com/questions/7071662/mysql-text-vs-blob-vs-clob
earlonrails

Réponses:

103

TEXT et CHAR seront convertis vers / à partir du jeu de caractères qu'ils ont associé au temps. BLOB et BINARY stockent simplement des octets.

BLOB est utilisé pour stocker des données binaires tandis que Text est utilisé pour stocker une grande chaîne.

Les valeurs BLOB sont traitées comme des chaînes binaires (chaînes d'octets). Ils n'ont pas de jeu de caractères et le tri et la comparaison sont basés sur les valeurs numériques des octets dans les valeurs de colonne.

Les valeurs TEXT sont traitées comme des chaînes non binaires (chaînes de caractères). Ils ont un jeu de caractères et les valeurs sont triées et comparées en fonction du classement du jeu de caractères.

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

Darcey
la source
3
Alors, nous utilisons du texte pour stocker du texte long tel que "wordpress post"? et nous utilisons blob pour stocker des adresses URL très longues? alors pourquoi n'utilisons-nous pas varchar pour stocker un texte très long au lieu d'utiliser un blob ou du texte? car dans le calcul de la mémoire, varchar est vraiment simple, par exemple créer une table site Web (website_name varchar (30)) et ensuite nous remplissons le website_name "stackoverflow" donc la mémoire nécessaire est de 13 octets
nencor
5
TEXT va être remplacé par Varchar (MAX) mais pour l'instant, en fonction de votre version de mysql, utilisez TEXT pour les gros articles de texte tels que les articles de corps de blog, etc. BLOB ne doit pas être utilisé pour stocker de très longues adresses URL ou de grandes quantités de texte . Il est normalement utilisé pour stocker des images ou d'autres objets binaires. Personnellement, je n'utilise jamais BLOB ou TEXT et je stocke de grandes quantités de données dans des fichiers xml par rapport aux dossiers basés sur l'ID utilisateur.
Darcey
Je ne comprends pas l'objet basé sur binaire. vous voulez dire, nous pouvons stocker la photo dans la base de données en utilisant le type de données Blob ?? comme un dossier? tout ce que je sais sur le binaire est seulement 1 ou 0.
nencor
1
@nencor Oui, vous pouvez stocker des images dans des bases de données. Vous pouvez également stocker des archives. Mais vous ne pouvez pas stocker un dossier dans une base de données, car les dossiers sont en fait des fonctionnalités du système de fichiers. (Vous pourriez éventuellement stocker un système de fichiers complet, par exemple sous forme de fichier iso dans une base de données, cependant)
Martin Thoma
@ martin-thoma Nous avons une application où le côté serveur a une base de données MongoDB. Le composant mobile de l'application utilise SQLLite. Il doit y avoir un moyen de relier les données entre la base de données MongoDB et la base de données SQLLite. MongoDB utilise ObjectIds pour identifier les données de manière unique. Étant donné que SQLLite (monde du SGBDR) n'a aucun moyen direct de représenter les ObjectIds MongoDB, je me demandais si je pourrais stocker des ObjectIds en tant que types BLOB. Cela vous semble-t-il une solution raisonnable? Cela ralentirait-il les performances? Y aurait-il d'autres inconvénients?
CS Lewis
10

TEXT et CHAR ou nchar qui seront généralement convertis en texte brut afin que vous ne puissiez stocker que du texte comme des chaînes.

BLOB et BINARY, ce qui signifie que vous pouvez stocker des données binaires telles que des images simplement stocker des octets.

FROID DIT
la source
qu'entendez-vous par stocker des données binaires telles que l'image? vouliez-vous dire URL de l'image?
nencor
10

Les types de données Blob stockent des objets binaires comme des images tandis que les types de données texte stockent des objets texte comme des articles de pages Web

Kenny
la source
7

Un BLOB est une chaîne binaire contenant une quantité variable de données. Pour la plupart, les BLOB sont utilisés pour contenir l'image binaire réelle au lieu des informations de chemin et de fichier. Le texte est destiné à de grandes quantités de caractères de chaîne. Normalement, un blog ou un article de presse constituerait un champ TEXTE

L dans ce cas est utilisé pour indiquer l'exigence de stockage. (Longueur | Taille + 3) tant qu'elle est inférieure à 224.

Référence: http://dev.mysql.com/doc/refman/5.0/en/blob.html

James Williams
la source
3

Selon le livre Mysql haute performance:

La seule différence entre les familles BLOB et TEXT est que les types BLOB stockent des données binaires sans classement ni jeu de caractères, mais les types TEXT ont un jeu de caractères et un classement.

Alireza Rahmani Khalili
la source
1

BLOB stocke des données binaires de plus de 2 Go. La taille maximale du BLOB est de 4 Go. Les données binaires désignent des données non structurées, c'est-à-dire des images, des fichiers audio, des fichiers vedio, une signature numérique

Le texte est utilisé pour stocker une grande chaîne.

Abhishek Saha
la source