Frage

Ist VARCHAR (100) besser als VARCHAR (500) von einer Performance-Sicht? Was ist Festplattennutzung?

über PostgreSQL spricht heute nicht einige Datenbank einige Zeit in der Geschichte.

War es hilfreich?

Lösung

Sie sind identisch.

Von der PostgreSQL-Dokumentation:

http://www.postgresql.org/docs/8.3/ static / Datentyp-character.html

  

Tipp: Es gibt keine Leistung   Unterschiede zwischen diesen drei Typen,   Neben erhöhten Speichergröße, wenn   mit dem Leerzeichen aufgefüllt Typ und ein paar   zusätzliche Zyklen, um die Länge zu überprüfen, wenn   Speicher in eine Länge mit beschränkter   Säule. Während die Zeichen (n) hat   Performance-Vorteile in einem anderen   Datenbanksysteme, hat es keine solche   Vorteile in PostgreSQL. In den meisten   Situationen, Texte oder Zeichen unterschiedlicher   sollte stattdessen verwendet werden.

Hier sprechen sie über die Unterschiede zwischen char (n), varchar (n) und Text (= varchar (1G)). Die offizielle Geschichte ist, dass es keinen Unterschied zwischen varchar (100) und Text (sehr große varchar).

Andere Tipps

TEXT / ist / die gleiche wie VARCHAR ohne eine explizite Länge, der Text

  

"Der Speicherbedarf für eine kurze   string (bis zu 126 Bytes) 1 Byte   plus die tatsächliche Zeichenfolge, die umfasst   der Raum Polsterung im Fall   Charakter. Längere Saiten 4 Bytes   Overhead statt 1. Lange Strings   werden durch das System komprimiert   automatisch, so dass die physikalischen   Bedarf auf der Festplatte möglicherweise weniger.   Sehr lange Werte werden ebenfalls gespeichert in   Hintergrund Tabellen, so dass sie es nicht tun   stören den schnellen Zugriff auf kürzere   Spaltenwerte. In jedem Fall ist die   möglichst lange Zeichenkette,   werden kann, ist etwa 1 GB gespeichert. "

bezieht sich sowohl auf VARCHAR und TEXT (seit VARCHAR (n) ist nur eine eingeschränkte Version von TEXT). Begrenzen Sie Ihre VARCHAR künstlich keine realen Speicher oder Leistungsvorteile hat (der Aufwand wird auf der Grundlage der tatsächlichen Länge des Strings, nicht die Länge des zugrunde liegenden varchar), mit Ausnahme möglicherweise für Vergleiche gegen Platzhalter und reguläre Ausdrücke (aber auf der Ebene, wo das beginnt zu Materie, sollten Sie vielleicht so etwas wie die Volltextindizierung Unterstützung des PostgreSQL suchen).

Es gibt keinen Unterschied zwischen varchar(m) und varchar(n) ..

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

Es gibt einen Unterschied zwischen varchar(n) und text aber varchar(n) in Constraint eine gebaut hat, die überprüft werden müssen, und ist eigentlich ein wenig langsamer.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top