Différences entre Varchar et Nvarchar Différence entre

Anonim

Varchar vs Nvarchar

Varchar est un nom court pour le champ de caractère variable. Les caractères représentent des données de longueur indéterminée. Varchar est un type de colonne de données qui se trouve dans les systèmes de gestion de base de données. La taille des colonnes Varchar peut varier en fonction de la base de données considérée.

Dans Oracle 9i, le champ a une limite maximale de 4 000 caractères. MySQL a une limite de données de 65 535 pour une ligne, et le serveur Microsoft SQL 2005 est livré avec une limite de 8000. Ce chiffre peut aller plus haut dans le serveur Microsoft SQL lorsque Varchar (max) est utilisé, passant à 2 gigaoctets. Nvarchar, d'autre part, est une colonne qui peut stocker n'importe quelle longueur de données Unicode. La page de codes à laquelle Nvarchar doit adhérer est un codage 8 bits. La taille maximale pour Varchar est de 8000 alors que la taille maximale pour NVarchar est de 4000. Cela signifie qu'une seule colonne de Varchar peut avoir un maximum de 8000 caractères et qu'une seule colonne de Nvarchar peut contenir au maximum 4000 caractères. Dépasser les valeurs des colonnes devient un gros problème et peut même causer de sérieux problèmes car les lignes ne peuvent pas couvrir plusieurs pages, à l'exception de SQL Server 2005, et la limitation doit être respectée sinon des erreurs ou des troncatures …

L'une des principales différences entre Varchar et Nvarchar est l'utilisation de moins d'espace dans Varchar. C'est parce que Nvarchar utilise Unicode, qui, en raison de la difficulté de coder les spécificités, prend plus de place. Pour chaque caractère stocké, Unicode requiert deux octets de données, ce qui peut entraîner une augmentation de la valeur des données par rapport aux données non-Unicode utilisées par Varchar. Varchar, en revanche, ne nécessite qu'un octet de données pour chaque caractère qui est stocké. Cependant, plus important encore, bien que l'utilisation d'Unicode prenne plus de place, elle résout des problèmes liés aux incompatibilités de page de code qui sont difficiles à résoudre manuellement.

Ainsi, la fonction d'espace peut être négligée, préférant le temps plus court qu'il faut à Unicode pour corriger les incompatibilités apparaissant. En outre, le coût des disques et de la mémoire est également devenu très abordable, ce qui permet de négliger souvent la fonction d'espace, tandis que le temps plus long nécessaire pour résoudre les problèmes liés à Varchar ne peut pas être écarté aussi facilement.

Toutes les plateformes de développement utilisent des systèmes d'exploitation modernes en interne, ce qui permet à Unicode de fonctionner. Cela signifie que Nvarchar est employé plus souvent que Varchar. Les conversions d'encodage sont évitées, ce qui réduit le temps nécessaire pour lire et écrire dans la base de données. Cela réduit également considérablement les erreurs, la récupération des erreurs de conversion qui se produisent devenant un problème simple à traiter.

--3 ->

L'avantage d'utiliser Unicode s'applique également aux personnes qui utilisent des interfaces d'application ASCII, car la base de données répond bien, en particulier le système d'exploitation et les algorithmes de coalition de base de données. Les données Unicode évitent les problèmes liés à la conversion et les données peuvent toujours être validées, si elles sont limitées à un ASCII 7 bits, quel que soit le système hérité qui doit être maintenu.

Sommaire

Varchar et Nvarchar viennent avec différents types de caractères. Varchar utilise des données non-Unicode tandis que Nvarchar utilise des données Unicode.

Varchar et Nvarchar ont tous deux des types de données différents à respecter. Varchar enregistre uniquement les données dans une séquence de 1 octet et Nvarchar enregistre les données dans 2 octets pour chaque caractère

La longueur maximale varie également. La longueur de Varchar est limitée à 8000 octets et 4000 octets est la limite pour Nvarchar.

Cela est dû au fait que la taille de stockage dans Varchar est plus simple, contrairement aux données Unicode utilisées par Nvarchar.