Maison >base de données >tutoriel mysql >Quelle est la différence entre blob et texte dans MySQL
Différence : 1. BLOB dans MySQL est utilisé pour enregistrer des données binaires, tandis que TEXT est utilisé pour enregistrer des données de caractères ; 2. Les colonnes BLOB n'ont pas de jeu de caractères et le tri et la comparaison sont basés sur les valeurs numériques de la valeur de la colonne. octets, tandis que les colonnes TEXT ont 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.
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
Il existe deux types de champs dans MySQL qui sont faciles à confondre, à savoir TEXT et BLOB. Examinons les différences entre les deux.
La différence entre blob et texte
1. Principale différence
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érence de type
BLOB a 4 types : 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 la 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. Cas
Lors du processus de stockage ou de récupération des colonnes TEXTE ou BLOB, il n'y a pas cas de conversion, ils sont tous pareils !
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 pour garantir qu'elle 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 des valeurs des colonnes BLOB et TEXT.
Pour les index sur les colonnes BLOB et TEXT, la longueur du préfixe d'index doit être spécifié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 des colonnes BLOB ou TEXT contenant des valeurs longues lorsque vous souhaitez donner un sens aux octets dépassant max_sort_length consiste à convertir les valeurs de colonne en objets 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 la taille du tampon de communication. Vous pouvez modifier la taille du tampon de messages en modifiant la valeur de la variable max_allowed_packet, mais vous devez modifier à la fois les programmes serveur et client.
【Recommandation associée : tutoriel vidéo mysql】
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!