Question

est VARCHAR (100) mieux que VARCHAR (500) d'un point de vue de la performance? Qu'en est-utilisation du disque?

En parlant de PostgreSQL aujourd'hui, pas une base de données un peu de temps dans l'histoire.

Était-ce utile?

La solution

Ils sont identiques.

De la documentation PostgreSQL:

http://www.postgresql.org/docs/8.3/ statique / datatype-character.html

  

Astuce: Il n'y a pas de performance   les différences entre ces trois types,   indépendamment de la taille de stockage augmente lorsque   en utilisant le type complété par des blancs, et quelques   cycles supplémentaires pour vérifier la longueur lorsque   stocker dans une contrainte de longueur   colonne. Bien que le caractère (n) a   avantages de performance dans une autre   systèmes de bases de données, il n'a pas une telle   avantages dans PostgreSQL. Dans la plupart   situations texte ou caractère variable   devrait être utilisé à la place.

Ici, ils parlent des différences entre char (n), varchar (n) et texte (= varchar (1G)). L'histoire officielle est qu'il n'y a pas de différence entre varchar (100) et texte (très grand varchar).

Autres conseils

TEXTE / est / la même chose que VARCHAR sans une longueur explicite, le texte

  

"L'exigence de stockage pour une courte   string (jusqu'à 126 octets) est de 1 octet   plus la chaîne réelle, qui comprend   le remplissage de l'espace dans le cas de   personnage. chaînes plus longues ont 4 octets   frais généraux au lieu de 1. Les chaînes longues   sont comprimés par le système   automatiquement, de sorte que la physique   exigence sur le disque pourrait être moins.   Des valeurs très longues sont également stockées dans   tables de fond afin qu'ils ne le font pas   interférer avec un accès rapide à plus court   les valeurs des colonnes. Dans tous les cas, la   la plus longue chaîne de caractères possible que   peut être stocké est d'environ 1 Go. "

fait référence à la fois VARCHAR et TEXT (depuis VARCHAR (n) est juste une version limitée de texte). Limiter votre VARCHARS a artificiellement aucun avantage de stockage ou de performance réelle (les frais généraux est basé sur la longueur réelle de la chaîne, et non pas la longueur de la varchar sous-jacente), sauf peut-être pour les comparaisons contre wildcards et regexes (mais au niveau où cela commence à la matière, vous devriez probablement regarder quelque chose comme le support d'indexation en texte intégral de PostgreSQL).

Il n'y a pas de différence entre et varchar(m) varchar(n) ..

http://archives.postgresql.org/pgsql-admin/ 2008-07 / msg00073.php

Il y a une différence entre et text si <=>, a une <=>. Construite en contrainte qui doit être vérifiée et est en fait un peu plus lent

http://archives.postgresql.org/pgsql-general/ 2009-04 / msg00945.php

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top