Hat ein erklärtes Größe keine Auswirkungen in PostgreSQL haben die varchar Feld?
-
21-08-2019 - |
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.
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