Ma question de côté existe-t-il vraiment une différence entre tinyblob & tinytext?varchar (255) v tinyblob v tinytext
Acheter ma vraie question est quelle raison, le cas échéant, je choisirais varchar (255) sur tinyblob ou tinytext?
Ma question de côté existe-t-il vraiment une différence entre tinyblob & tinytext?varchar (255) v tinyblob v tinytext
Acheter ma vraie question est quelle raison, le cas échéant, je choisirais varchar (255) sur tinyblob ou tinytext?
Principalement storage requirements et la manipulation/vitesse mémoire:
Dans le tableau suivant,
M
représente la longueur de la colonne déclarée en caractères pour les types de chaîne non binaires et d'octets pour les types de chaînes binaires.L
représente la longueur réelle en octets d'une valeur de chaîne donnée.VARCHAR (
M
), VARBINARY (M
):
L
+ 1 octets si les valeurs des colonnes nécessitent 0 - 255 octets,
L
+ 2 octets si les valeurs peuvent besoin de plus de 255 octetsTINYBLOB, TINYTEXT:
L
+ 1 octets, oùL
De plus, voir this après:
Pour chaque table en cours d'utilisation, MySQL alloue mémoire pour 4 lignes. Pour chacune de ces colonnes , la colonne CHAR (X)/VARCHAR (X) prend en haut des X caractères.
A TEXTE/BLOB d'autre part est représenté par un pointeur de 8 octets + un 1-4 longueur d'octet (selon le type BLOB /TEXT). Le BLOB/TEXT est attribué dynamiquement lors de l'utilisation. Cela utilisera moins de mémoire, mais dans certains cas, risque de fragmenter votre mémoire au cours de l'exécution longue de .
Modifier: En aparté, blobs stocker des données binaires et les magasins de texte ASCII, thats la seule différence entre TINYBLOB et TINYTEXT.
VARCHAR (255) est plus standard SQL que tinyblob ou tinytext. Ainsi, votre script et votre application seraient plus portables dans tous les fournisseurs de bases de données.
Vous ne pouvez pas appliquer de caractères à TINYTEXT, mais vous pouvez VARCHAR (255)
Il est pas vrai, vous pouvez appliquer le jeu de caractères à la fois VARCHAR et TINYTEXT (en mySQL), mais pas à TINYBLOB. –