Frage

Ist es effizienter, ein varchar Feld zu verwenden bemessen als eine Potenz von zwei gegen eine andere Nummer? Ich denke nicht, denn für SQL Server der Standard-50 ist.

Aber ich habe gehört (aber nie bestätigt), dass die Felder als eine Potenz von 2 Dimensionierung effizienter ist, weil sie gleichzusetzen, auch Bytes und Computer-Prozess in Bits & Bytes.

So wird erklärt ein Feld als varchar(32) oder varchar(64) einen wirklichen Nutzen über varchar(50) hat?

War es hilfreich?

Lösung

Nein.

In einigen anderen Anwendungen gibt es einige Vorteile Strukturen zu verwenden, mit einer Leistung von zwei Größen, vor allem, weil man eine schöne passen (Zweierpotenz) Anzahl davon in einer anderen Potenz von zwei großen Struktur. Dies gilt jedoch nicht auf eine DB Feldgröße.

Die einzige Macht-of-two-Sizing im Zusammenhang mit VARCHARs ist über die genaue Art der varchar (oder TEXT / BLOB in einigen SQL-Dialekten): Wenn es weniger als 256 ist, kann es ein einziges Byte verwendet Länge anzuzeigen. wenn es weniger als 65536 (64 KB), sind zwei Bytes genug, drei Bytes arbeiten bis zu 16.777.216 (16MB), vier Bytes gehen bis 4294967296 (4 GB).

Auch kann man argumentieren, dass VARCHAR(50) genauso teuer wie VARCHAR(255) ist, da beide werden n + 1 Byte Speicherplatz benötigen.

Natürlich, die vor dem Denken von Unicode ist ...

Andere Tipps

Ich dachte immer, die Menschen Zweierpotenzen für varchar Felder wählen, weil wir Geeks und das ist sind, was wir tun. Zumindest ist das, was ich immer getan.

Der einzige greifbare Nutzen Sie die Verwendung bestimmte Maximallängen ist der Speicherplatz für die VARCHAR erforderlich sehen. Eine maximale Länge über 255 würde ein zusätzliches Byte erfordert die Länge des Wertes in jeder Reihe (und ein zusätzliches 2 Bytes für Längen von 256 ^ 2 oder mehr, und so weiter) zu speichern.

Für SQL im Allgemeinen? Nein. Für eine spezifische Implementierung, vielleicht.

Was ist effizienter wird nicht durch eine Spezifikation bestimmt (SQL ist nur eine Spezifikation), aber, wie es in einem bestimmten DBMS implementiert ist.

Es hängt von der spezifischen Datenbank-Implementierung, aber ich würde nicht erwarten, dass es zu. Es ist keine Berechnungen auf der Anzahl der Zeichen durchgeführt wird, im Allgemeinen, so dass es nicht die Leistung beeinträchtigen sollte -. Nur Raum

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