Dans le tableau suivant, M représente l'déclaré la longueur de la colonne en caractères non binaire types de chaînes et d'octets pour la chaîne binaire de types. L représente la longueur réelle en octets d'une chaîne de valeur.
VARCHAR(M), VARBINARY(M):
L + 1
octets si les valeurs de colonne exiger 0 – 255
octets,
L + 2 octets si les valeurs peuvent
besoin de plus de 255 octets
Pour chaque table à utiliser, MySQL alloue
la mémoire de 4 lignes. Pour chacun de ces
les lignes CHAR(X)/VARCHAR(X) colonne
les X caractères.
Un TEXTE/BLOB sur l'autre main est
représenté par un de 8 octets pointeur + un
De 1 à 4 octets de longueur (selon le
GOUTTE/type de TEXTE). Le BLOB/TEXT est
alloués dynamicly sur l'utilisation. Ce sera
utiliser moins de mémoire, mais dans certains cas, il
peut fragmenter votre mémoire à long
exécutez.
Modifier: d'un côté, des gouttes de stocker des données binaires et texte des magasins ASCII, c'est la seule différence entre TINYBLOB et TINYTEXT.
VARCHAR(255) est plus de la norme SQL que tinyblob ou tinytext. Si votre script, et l'application serait plus portable à travers la base de données des fournisseurs.
Principalement les besoins de stockage et la gestion de la mémoire/vitesse:
En outre, voir cette post:
Modifier: d'un côté, des gouttes de stocker des données binaires et texte des magasins ASCII, c'est la seule différence entre TINYBLOB et TINYTEXT.
OriginalL'auteur
VARCHAR(255) est plus de la norme SQL que tinyblob ou tinytext. Si votre script, et l'application serait plus portable à travers la base de données des fournisseurs.
OriginalL'auteur
Vous ne pouvez pas appliquer de JEU de CARACTÈRES à TINYTEXT, mais vous pouvez VARCHAR(255)
OriginalL'auteur