1. Die Länge von CHAR ist fest, aber die Länge von VARCHAR2 kann geändert werden. Um beispielsweise die Zeichenfolge „abc“ für CHAR (20) zu speichern, bedeutet dies, dass die von Ihnen gespeicherten Zeichen 20 Bytes belegen (einschließlich 17 Nullzeichen). . Das gleiche VARCHAR2 (20) belegt nur eine Länge von 3 Bytes, und 20 ist nur der Maximalwert. Wenn die von Ihnen gespeicherten Zeichen weniger als 20 sind, werden sie entsprechend der tatsächlichen Länge gespeichert.
2. CHAR ist etwas effizienter als VARCHAR2.
3. Derzeit ist VARCHAR ein Synonym für VARCHAR2. Der branchenübliche VARCHAR-Typ kann leere Zeichenfolgen speichern, Oracle tut dies jedoch nicht, behält sich jedoch das Recht vor, dies in Zukunft zu tun. Oracle hat einen Datentyp VARCHAR2 entwickelt. Dieser Typ ist kein Standard-VARCHAR. Er ändert die Funktion, dass die Varchar-Spalte in der Datenbank leere Zeichenfolgen speichern kann. Wenn Sie Abwärtskompatibilität wünschen, empfiehlt Oracle die Verwendung von VARCHAR2 anstelle von VARCHAR.
Wann sollte ich CHAR und wann varchar2 verwenden?
CHAR und VARCHAR2 sind eine widersprüchliche Einheit, und die beiden ergänzen sich.
VARCHAR2 spart Platz als CHAR und ist etwas weniger effizient als CHAR. Das heißt, wenn Sie an Effizienz gewinnen möchten, müssen Sie einen gewissen Betrag opfern Platzbedarf, was wir im Datenbankdesign oft sagen: „Platz gegen Effizienz eintauschen“.
Obwohl VARCHAR2 Platz spart als CHAR, wenn eine VARCHAR2-Spalte häufig geändert wird und die Länge der geänderten Daten jedes Mal unterschiedlich ist, führt dies zu einem Phänomen der „Zeilenmigration“ (Zeilenmigration), das zu redundanten E/A führt. O, was bei der Datenbankgestaltung und -anpassung vermieden werden sollte. In diesem Fall wäre es besser, CHAR anstelle von VARCHAR2 zu verwenden. (Dynasty Network wangchao.net.cn)