TEXTE/est/le même que VARCHAR sans une longueur explicite, le texte
« L'exigence de stockage pour une courte chaîne (jusqu'à 126 octets) est de 1 octet plus la chaîne réelle, qui comprend le rembourrage de l'espace dans le cas de caractère. les chaînes plus longues ont 4 octets tête au lieu de 1. les chaînes longues sont compressées par le système automatiquement, donc l'exigence physique sur le disque est peut-être moins. des valeurs très longues sont aussi sto rouge dans tables de fond de sorte qu'ils ne interférer avec un accès rapide à plus court valeurs de la colonne. Dans tous les cas, la plus longue chaîne de caractères possible que peut être stocké est d'environ 1 Go. »
fait référence à la fois VARCHAR et TEXT (depuis VARCHAR (n) est juste une version limitée de texte). Limiter votre VARCHARS n'a artificiellement aucun avantage réel en termes de stockage ou de performances (le temps système dépend de la longueur réelle de la chaîne et non de la longueur de la variable varchar), sauf pour les comparaisons avec les caractères génériques et les expressions régulières. vous devriez probablement regarder quelque chose comme support de l'indexation de texte intégral de PostgreSQL)
Je parle de VARCHAR (m) vs VARCHAR (n), pas VARCHAR vs CHAR, qui est ce que vous pointez. – ibz
Vérifiez à nouveau. Ils se réfèrent aux TROIS étant identiques. C'est à dire. la performance de varchar (n) est la même que le texte, qui est varchar (LOTS). La seule différence entre les TROIS types est le bourrage et la contrainte de longueur. Ni s'appliquent entre varchar (100) et varchar (500), donc ils disent qu'ils sont les mêmes. –
Oui, ils mentionnent tous les trois, mais ils insistent seulement sur deux. En fait, j'ai posé cette question sur SO exactement parce que je n'étais pas heureux avec ce paragraphe particulier dans le document et je cherchais une explication plus perspicace. Et non, TEXT n'est * pas * le même que VARCHAR (LOTS). TEXT est stocké en dehors de la ligne. Au moins AFAIK. – ibz