Maison >base de données >tutoriel mysql >Quel est l'équivalent MySQL de varchar(max) ?

Quel est l'équivalent MySQL de varchar(max) ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-13 03:15:10619parcourir

What's the MySQL Equivalent of varchar(max)?

Explorer l'équivalent de varchar(max) dans MySQL

MySQL n'offre pas d'équivalent explicite au varchar(max) type de données utilisé dans d'autres systèmes de bases de données. Cependant, il existe des moyens d'obtenir des fonctionnalités similaires dans les limites de MySQL.

Limites de taille de VARCHAR

Par défaut, la longueur maximale d'un VARCHAR Le champ dans MySQL contient 255 caractères. Pour étendre cette limite, nous pouvons utiliser la syntaxe VARCHAR(length). Cependant, cette longueur est toujours soumise à la taille maximale des lignes dans MySQL, qui est de 64 Ko (hors BLOB).

Par exemple :

VARCHAR(65535)

Cela créera un VARCHAR champ d'une longueur maximale de 65535 caractères.

Jeu de caractères Considérations

Les jeux de caractères multi-octets, tels que UTF8, réduisent la longueur effective des champs VARCHAR. En UTF8, chaque caractère peut occuper plusieurs octets de stockage. Cela signifie que la longueur maximale réelle d'un champ VARCHAR utilisant UTF8 sera plus petite :

VARCHAR(21844) CHARACTER SET utf8

Exemples de limitations de longueur VARCHAR

Le Le calcul de la taille maximale des lignes doit inclure la surcharge de stockage pour l'encodage de longueur VARCHAR, de sorte que la longueur maximale que vous pouvez declare est légèrement inférieure à la taille maximale des lignes.

CREATE TABLE foo ( v VARCHAR(65534) );
ERROR 1118 (42000): Row size too large...

Cependant, réduire légèrement la longueur permet de créer la table :

CREATE TABLE foo ( v VARCHAR(65532) );
Query OK, 0 rows affected...

L'utilisation d'un jeu de caractères multi-octets réduit encore la longueur maximale en raison de l'espace de stockage plus grand requis pour chaque caractère :

CREATE TABLE foo ( v VARCHAR(65532) ) CHARSET=utf8;
ERROR 1074 (42000): Column length too big for...

En conclusion, alors que MySQL n'a pas d'équivalent exact à varchar(max), le type de données VARCHAR(length) fournit un moyen d'accepter des valeurs de texte volumineuses dans les limites de la taille maximale des lignes et du jeu de caractères utilisé.

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