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)
[ angeben. &&&]Bearbeiten:Wenn der in der Datenbank zu speichernde Text länger als 65535 Zeichen ist, müssen Sie MEDIUMTEXT 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.
Allerdings sollten Sieimmerdie Eingabe überprüfen, bevor Sie die Daten in der Datenbank speichern (ist es zu lang? Enthält es seltsamen Code?). Bitte beachten Sie: Bei beiden Typen hängt der benötigte 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 die Anzahl der zum Speichern der Daten erforderlichen Leerräume minimieren werden
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3