2010-05-25 3 views

Antwort

19

Mit Bezug auf die documentation, gibt es keine explizite Grenze für die varchar(n) Typdefinition. Aber:

...
In jedem Fall ist der längste mögliche Zeichenfolge, die gespeichert werden können, ist etwa 1 GB. (Der Maximalwert, dass für n in dem Datentyp zugelassen werden Erklärung ist weniger als das. Es nicht sehr nützlich wäre, diese zu ändern, weil mit Mehrbyte-Zeichen die Anzahl der Zeichen Kodierungen und Bytes ganz anders sowieso. Wenn Sie lange Strings ohne bestimmte Obergrenze zu speichern wünschen, verwenden Sie Text oder ohne Längen Spezifizierer unterschiedlichen Charakter, anstatt eine beliebiger Länge Grenze bilden.)

Auch diese beachten Sie:

Tipp: Es gibt keine Leistung Unterschied zwischen diesen drei Typen, abgesehen von erhöhten Speicherplatz wenn die Leerzeichen aufgefüllt Typen verwenden und ein paar zusätzlichen CPU-Zyklen Überprüfen Sie die Länge beim Speichern in einer Länge eingeschränkten Spalte. Während Zeichen (n) Leistung Vorteile in einigen anderen Datenbank Systeme hat, gibt es keinen solchen Vorteil in PostgreSQL; in der Tat ist Zeichen (n) in der Regel der langsamste der drei wegen seiner zusätzlichen Speicher Kosten. In den meisten Situationen sollte stattdessen Text oder Zeichenvariable verwendet werden.

1

Von documentation:

In jedem Fall ist eine möglichst lange Zeichenkette, die gespeichert werden kann, ist etwa 1 GB.

0

Zeichenart in postgresql

  • Charakter unterschiedlicher (n), VARCHAR (n) = variabler Länge mit Grenz
  • Zeichen (n), char (n) = feste Länge, blank gepolsterte
  • text = variable unbegrenzter Länge

basierend auf Ihrem Problem, das ich vorschlagen, dass Sie Typ Text verwenden. Der Typ benötigt keine Zeichenlänge.

Darüber hinaus bietet PostgreSQL die Text Art, die Strings beliebiger Länge speichert. Obwohl der Typtext nicht im SQL-Standard enthalten ist, gibt es auch andere SQL-Datenbankverwaltungssysteme.

Quelle: https://www.postgresql.org/docs/9.6/static/datatype-character.html

Verwandte Themen