2010-02-18 5 views

Répondre

36

Vous ne pouvez pas affecter une valeur DEFAULT à un TINYTEXT et vous ne pouvez pas créer un index non préfixé sur ce dernier.

En interne, des objets supplémentaires sont alloués en mémoire pour gérer les colonnes TEXT (y compris TINYTEXT) qui peuvent provoquer une fragmentation de la mémoire sur les jeux d'enregistrements volumineux.

Notez que cela ne concerne que la représentation interne de la colonne dans les jeux d'enregistrements, pas comment ils sont stockés sur le disque.

+0

quand mysql a besoin d'une table temporaire, si un blob ou un texte (inc. tinytext) il utilise le disque au lieu de la mémoire pour créer la table temporaire – andho

+8

Lequel est le moins cher (temps et cycles CPU) à rechercher? – Medorator

5

En utilisant VARCHAR vous pouvez définir la colonne à NULL ou NOT NULL et vous pouvez définir DEFAULT valeur, mais pas avec TEXT. Utilisez VARCHAR si vous avez besoin d'une ou des deux fonctionnalités, NULL et DEFAULT.

+3

La colonne TINYTEXT peut également être NULL. – planetp

+0

Mais pas par défaut –

-2

à varchar, vous devez définir la longueur d'un caractère alors qu'en tanytext il n'y a rien comme cela, il sauve la mémoire de base de données pour les ex:

pour adresse que vous devez définir l'varchar (50) que votre adresse peut être 50 charecter ou moins la pire condition est votre personnage plus de 50 caractères c'est la limitation de varchar si le caractère est inférieur à 50 qu'il occupe la mémoire de 50 caractères dans ce cas la mémoire est augmente

alors utilisez tanytext il définit la longueur du caractère en fonction de la taille du caractère afin que la mémoire soit sauvegardée

+0

Ceci est faux. Un varchar utilise seulement autant de mémoire que la longueur de ce qui est actuellement stocké (contrairement à char). Voir http://dev.mysql.com/doc/refman/5.0/fr/storage-requirements.html – viblo

+0

Salut, dans varchar, nous définissons la longueur de la chaîne, il prend la mémoire jusqu'à la limite prédéfinie. ce n'est pas en cas de tanytext. – nilesh

+0

Je ne comprends pas ce que vous voulez dire. Le docs MySQL dit qu'un varchar nécessite "L + 1 octets si les valeurs de colonne nécessitent 0 - 255 octets, L + 2 octets si les valeurs peuvent nécessiter plus de 255 octets" où L est la longueur réelle du texte stocké, pas ce que vous défini le varchar à avoir comme longueur maximale. – viblo

Questions connexes