Gibt es Nachteile, wenn Sie Ihren Datenbankspalten zusätzliche Größe / Länge geben?

8

Normalerweise setze ich alle meine Varchare auf 255, um sicher zu sein. Macht es einen Unterschied in Bezug auf den Speicherplatz oder etwas anderes? Gibt es einen Nachteil, größere Varchars / Ints / andere Felder zu haben, als Sie meistens brauchen würden?

    
Click Upvote 28.04.2011, 16:06
quelle

5 Antworten

4

Es braucht mehr Zeit und mehr Plattenübertragungen, um größere Datenelemente in den Speicher zu laden. Durch das Definieren großer Maximalgrößen für Spalten wird die Größe von Tabellenzeilen erhöht. Für viele DBMS-Server sind Tabellenzeilen die übertragenen Elemente. Wenn Sie also Spalten definieren, die zu fett sind, verlangsamt sich das.

Dieser Effekt ist für VARCHAR -Elemente minimal. Aber VARCHAR ist ziemlich viel langsamer als Datentypen wie ganze Zahlen. Acht Byte-Ganzzahlen benötigen viermal so viel Zeit für die Übertragung wie Zwei-Byte-Ganzzahlen. Wenn also eine Datenbank auf ultimative Leistung ausgelegt ist, wird durch eine Begrenzung der Datenspalten auf den tatsächlich benötigten Bereich die Geschwindigkeit erhöht. Das Ausmaß dieses Effekts hängt davon ab, ob der Festplattenkanal ein Engpass ist oder nicht.

Ein weiterer möglicher Engpass ist der Kanal, der den Server mit dem Client verbindet, oft ein Netzwerkkanal. Engpässe in diesem Kanal können durch Abfragen reduziert werden, die nicht nach Daten fragen, die niemals verwendet werden. Es gibt jedoch einen Kompromiss zwischen der Abfrage von Daten nur dann, wenn Sie sie benötigen und zu vielen Rundreisen.

Es gibt auch einen Kompromiss zwischen dem Entwurf für optimale Leistung und dem Entwurf im Hinblick auf sich ändernde Anforderungen.

    
Walter Mitty 29.04.2011, 11:09
quelle
5

Wenn Sie 255 Zeichen zulassen, darf jemand 255 Zeichen verwenden. Daher muss jeder Bericht und jeder Online-Eingabebildschirm 255 Zeichen umfassen können. Unordentlich.

Ich habe ein Beispiel aus der Praxis: In unserem System entschied jemand, dass Abteilungsnamen 200 Zeichen lang sein könnten. Wenn jemand einen ziemlich langen Wert eingegeben hat, hat er das Layout mehrerer HTML-Formulare durcheinander gebracht, andere Felder von der rechten Seite geschoben und sie unzugänglich gemacht. Daher waren einige Nachbesserungsarbeiten erforderlich ...

    
Tony Andrews 28.04.2011 16:10
quelle
3

Nein, das keinen Speicherplatz beansprucht. Wenn Sie irgendeine Spalte als varchar ausgewählt haben, wird die Variable von 0 bis 65535 variabel sein. Wenn Sie 255 oder 65535 deklarieren, sind beide gleich.

Wenn Sie nur 255 Zeichen benötigen, sollten Sie sie als char deklarieren, damit Ihre Abfragen schnell sind, wenn es keine Spalte mit variabler Länge in Ihrer Tabelle gibt.

    
Shakti Singh 28.04.2011 16:10
quelle
1

Da der Speicherplatz so billig ist, tendiere ich dazu, nicht so besorgt zu sein wie vor Jahren. In VLDBs addieren sich jedoch kleine Dinge.

    
Dustin Laine 28.04.2011 16:09
quelle
0

Dies könnte einen Einblick geben:

Welche Varchar-Größen gibt es für MySQL?

    
Mikecito 28.04.2011 16:09
quelle