To BLOB or not to BLOB, telle est la question: 
Vaut-il mieux enregistrer une chaîne de caractères dans un BLOB, dans un CHAR, ou dans un VARCHAR?


Différences entre le CHAR et le VARCHAR

Beaucoup de gens croient que VARCHAR est meilleur parce qu'il enregistre seulement des données réelles, alors que le CHAR est enregistré dans la toute sa longueur. Ce n'est pas vrai. En fait, les CHAR et les VARCHAR sont enregistrés dans la mémoire tampon dans l'intégralité de leur longueur déclarée ; quand la ligne est enregistrée sur le disque, l'algorithme de compactage de RLE est employé pour comprimer la ligne entière, c.-à-d. CHARs, VARCHARs, INTEGERs, DATEs, etc. tous ensemble. Donc si vous voulez ménager de l'espace, CHARs sont légèrement meilleurs que VARCHARs (la difference est que VARCHAR enregistre la longueur de chaîne de caractères dans deux octets). Il y a également un bug qui fait que VARCHAR ne nettoie pas correctement la fin de la chaîne de caractères si vous assignez une chaîne de caractères plus courte, ce qui cause un plus mauvais compactage.

Beaucoup de gens croient également que VARCHAR envoie uniquement les données réelles sur le réseau, alors que le CHAR est transmis dans toute sa longueur déclarée. Ce n'est pas vrai non plus. La transmission entre le client et le serveur est faite par l'intermédiaire des messages de longueur fixe. Pour cette raison le CHAR et les VARCHAR sont transmis dans leur pleine longueur déclarée.

Ainsi la décision d'utiliser le CHAR ou le VARCHAR devrait être basée seulement sur les besoins de l'application. Par exemple enregistrez les codes de longueur fixe dans le CHAR, enregistrez des noms dans VARCHAR (pour permettre une concatenation correcte).


Comparaison entre les BLOBs et les VARCHARs

Tous les commentaires dans ce paragraphe se référant au type de VARCHAR sont valides pour le type CHAR également
Chaque commentaire termine avec BLOB+ ou VARCHAR +  pour indiquer quel type de données est meilleur.
Copyright © 2001 Ivan Prenosil 
traduit de l'anglais par Google, rectifications par gzOrg.