Beim Erstellen einer Tabelle in MySQL sollte die Länge der Spalte vom Typ VARCHAR klar festgelegt werden. Für den Typ TEXT muss die Länge jedoch nicht angegeben werden. Was ist also der Unterschied zwischen VARCHAR und TEXT?
TEXT
VARCHAR(M)
Bearbeiten:Wenn der in der Datenbank zu speichernde Text länger als 65535 Zeichen ist, müssen Sie MITTELTEXT oder auswählen LONGTEXT, aber Vorsicht: Die maximal gespeicherte Stringlänge beträgt 16 MB für MEDIUMTEXT und 4 GB für LONGTEXT. Wenn Sie LONGTEXT verwenden und die Daten über PHP abrufen (zumindest wenn Sie mysqli und nicht die Funktion „store_result“ verwenden), erhalten Sie möglicherweise einen Speicherzuordnungsfehler, da PHP versucht, 4 GB Speicher zuzuweisen, um sicherzustellen, dass die gesamte Zeichenfolge dies kann gepuffert werden. Dies kann neben PHP auch in anderen Sprachen passieren.
Sie sollten jedochimmer die Eingabe überprüfen (ist sie zu lang? Enthält sie seltsamen Code?), bevor Sie die Daten in der Datenbank speichern . Bitte beachten Sie: Bei beiden Typen hängt der erforderliche Speicherplatz nur von der Länge der gespeicherten Zeichenfolge ab, nicht von der maximalen Länge. Wenn Sie beispielsweise den Zeichensatz latin1 verwenden und den Text „Test“ in VARCHAR(30), VARCHAR(100) und TINYTEXT speichern, sind immer 5 Bytes erforderlich (1 Byte zum Speichern der Zeichenfolgenlänge, jedes Zeichen 1 Byte). . Wenn Sie den gleichen Text in einer VARCHAR(2000)- oder TEXT-Spalte speichern, benötigt er auch den gleichen Platz, aber in diesem Fall belegt er 6 Bytes (2 Bytes zum Speichern der Zeichenfolgenlänge, 1 Wort pro Zeichenfest). Weitere Informationen finden Sie in der Dokumentation. Abschließend möchte ich hinzufügen, dass sowohl TEXT als auch VARCHAR Datentypen variabler Länge sind, sodass sie höchstwahrscheinlich den zum Speichern der Daten erforderlichen Platz minimieren werden
Das obige ist der detaillierte Inhalt vonVARCHAR vs. TEXT in MySQL: Was sind die Hauptunterschiede?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!