Y a-t-il une différence de performance entre varchar (1) code> et
char (1) code>? Quels RDBMS gérent ces deux types de données et tailles de différentes manières? P>
6 Réponses :
Cela ne compte guère, puisque vous utilisez 1 octet dans les deux cas. p>
Mais longue histoire courte, Varchar est la taille variable et la taille est une taille fixe. En grandes quantités, cela peut faire la différence dans l'espace de stockage et affecter le temps de calcul. P>
performance sage, utilisez Char si les données vont être une longueur fixe. Si vous êtes flexible avec une longueur variable de vos données, utilisez Varchar. P>
*** PAS 1 octet dans les deux cas! *** - Par exemple - MySQL V5.0 Docs Dites à Varchark Exigences de stockage pour Varcharchar (M) exige 'L + 1 octets si les valeurs de colonne requièrent 0 - 255 octets' (où L représente la longueur réelle en octets d'une valeur de chaîne donnée ). Donc, vous utiliseriez 1 octet pour le char (1) et 2 octets pour Varchar (1). Dans ce cas, vous utilisez 100% plus d'espace de stockage pour cette colonne. Cela peut être ou non une grosse affaire en fonction de la situation d'utilisation. La peine d'indiquer la différence si elle est pertinente. (Voir dev.mysql.com/doc/refman/5.0/ FR / Configuration de stockage.html )
En ce qui concerne Oracle concerné ... P>
Char (2) utilisera toujours deux octets / caractères de stockage. Varchar2 (2) ne peut en utiliser qu'un seul. Donc, le cas général est d'utiliser Varchar2 au lieu de Char. P>
En pratique, vous ne devriez pas voir une performance de différence sage pour une colonne d'une personnalité. p>
Étant donné qu'il n'y a jamais de bénéfice de Char, j'utilise toujours Varchar2. P>
Le Varchar doit toujours stocker au moins un octet pour la longueur de la chaîne, cependant, vous ne pouvez jamais avoir moins de 1 octet.
La différence sera négligeable dans la plupart des cas. Concentrez-vous sur vos efforts de conception orientés sur la performance dans des endroits où il fera une réelle différence, comme la composition de table et la conception de l'index. P>
Il aide à diviser l'effort de conception en deux couches: conception logique et conception physique.
La plupart des efforts axés sur la performance sont dans la deuxième étape, la conception physique. p>
Dans la conception logique, la flexibilité atout la performance. Sauf quand ça ne va pas. P>
La flexibilité devrait presque jamais tromb les performances! Je vous garantis que l'utilisateur souhaite des performances sur la flexibilité même lorsqu'ils disent qu'ils veulent une flexibilité.
Peut-être pas: nikoport.com/2012/09/05/...
Ma compréhension Après avoir lu la description de MySQL de Varcharne et de Char est que si vous êtes des données aurez toujours la même longueur, alors que vous pouvez potentiellement vous enregistrer un seul octet de données car Varcharre nécessite le stockage d'un octet séparé de les données réelles afin d'enregistrer la durée des données. Cependant, si vous êtes des données n'est pas une longueur constante et que vous envisagez de considérations spatiales, il serait logique d'utiliser Varchar, car cela utilisera toujours un octet pour chaque bit de la longueur déclarée s'il y a quelque chose dans cet espace . p>
À la fin, cependant, cela n'apporte probablement pas cette grosse différence car la quantité de données impliquée est assez petite. P>
Voici où j'ai eu mes informations: http: //dev.mysql .COM / DOC / REFMAN / 5.0 / FR / CHAR.HTML Si vous suivez le lien, faites une attention particulière à la petite carte car elle donne des exemples de la manière dont les données seraient traitées avec Varchar Vs. Char. p>
dans MS SQL Le em> breakgen em> point sur Si vous utilisez une longueur fixe, alors ref: http://msdn.microsoft.com/en-gb /Library/ms176089.aspx P> Varcharchar (1) Code> Utilise trois fort> octets de stockage et
Char (1) Code> Utilise
char (1) code> est plus efficace que
varchar (1) code> dans le traitement et le stockage. P>
varchar code> serait plus de plus de 3 caractères si l'utilisation de données de longueur variable. P>
Char code> est toujours plus efficace par deux octets. P>
pour oracle p>
Le Varchar2 (1) et le char (1) sont identiques dans tous les aspects. Il n'y a pas raison convaincante d'utiliser le type de caractère dans ce cas et d'éviter tout confusion, je viens de dire non, "même pour le champ Char (1). P> blockQuote>
Référence: https: //asktom.oracle.com/pls/asktom/f?p=100:11:0::::111_Question_id:26683919003468444476 P>
N'est pas vrai pour les conducteurs. Les pilotes Oracle .NET diffèrent les deux.