Maison  >  Article  >  base de données  >  Comprendre la différence entre les types de champs TEXT et BLOB dans MySQL

Comprendre la différence entre les types de champs TEXT et BLOB dans MySQL

怪我咯
怪我咯original
2017-04-01 10:49:531490parcourir

Il existe deux types de champs dans MySQL qui sont faciles à confondre, à savoir TEXT et BLOB, en particulier les blogueurs qui écrivent leurs propres programmes de blog ne savent pas changer les leurs Sélectionnez le type TEXTE ou BLOB pour le champ de texte du blog.
Voici quelques différences :
1. Principales différences
La principale différence entre TEXT et BLOB est que BLOB stocke les données binaires et TEXT stocke les données de caractères. À l'heure actuelle, presque toutes les images du contenu du blog ne sont pas stockées en binaire dans la base de données. Au lieu de cela, les images sont téléchargées sur le serveur puis référencées à l'aide de la balise dans le texte. BLOB peut convertir des images en binaire et les enregistrer dans la base de données.
2. Différences de types
Il existe 4 types de BLOB : TINYBLOB, BLOB, MEDIUMBLOB et LONGBLOB. Ils ne diffèrent que par la longueur maximale pendant laquelle ils peuvent contenir une valeur.
TEXT a également 4 types : TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT. Ces types ont la même longueur maximale et les mêmes exigences de stockage que les types BLOB.
3. Jeu de caractères
Les colonnes BLOB n'ont pas de jeu de caractères, et le tri et la comparaison sont basés sur la valeur numérique des octets de valeur de colonne. La colonne TEXTE a un jeu de caractères, et les valeurs sont triées et comparées selon les règles de classement du jeu de caractères
4. La casse
n'existe pas pendant le processus de stockage ou de récupération des colonnes TEXT ou BLOB La conversion de casse est la même !
5. Mode strict
Lors de l'exécution en mode non strict, si vous attribuez une valeur à une colonne BLOB ou TEXT qui dépasse la longueur maximale du type de colonne, la valeur est tronquée à assurez-vous qu’il s’adapte. Si le caractère tronqué n'est pas un espace, un avertissement sera généré. En utilisant le mode SQL strict, une erreur sera générée et la valeur sera rejetée au lieu d'être interceptée avec un avertissement.
6. Autres
Ne supprimez pas les espaces de fin lors de l'enregistrement ou de la récupération de valeurs dans les colonnes BLOB et TEXT.
Pour les index sur les colonnes BLOB et TEXT, la longueur du préfixe d'index doit être précisée.
Les colonnes BLOB et TEXT ne peuvent pas avoir de valeurs par défaut.
Seuls les premiers octets max_sort_length de la colonne sont utilisés lors du tri. La valeur par défaut de max_sort_length est 1024.
Une autre façon d'utiliser GROUP BY ou ORDER BY sur une colonne BLOB ou TEXT contenant des valeurs longues lorsque vous souhaitez donner un sens aux octets dépassant max_sort_length consiste à convertir la valeur de la colonne en un objet de longueur fixe. L'approche standard consiste à utiliser la fonction SUBSTRING. La taille maximale d'un objet
BLOB ou TEXT est déterminée par son type, mais la taille maximale qui peut réellement être transmise entre le client et le serveur est déterminée par la quantité de mémoire disponible et le cache de communication taille de la zone. Vous pouvez modifier la taille du tampon de message en modifiant la valeur de la variable max_allowed_packet, mais vous devez modifier à la fois les programmes serveur et client.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn