Ich habe eine Nachrichtentabelle in MySQL, die Nachrichten zwischen Benutzern aufzeichnet. Abgesehen von den typischen IDs und Nachrichtentypen (alles Integer-Typen) muss ich den eigentlichen Nachrichtentext entweder als VARCHAR oder TEXT speichern. Ich setze ein Front-End-Limit von 3000 Zeichen, was bedeutet, dass die Nachrichten nie in die Datenbank eingefügt werden, wenn sie länger sind als diese.
Gibt es einen Grund für die Verwendung von VARCHAR(3000) oder TEXT? Es gibt etwas über nur VARCHAR(3000) zu schreiben, die etwas kontra-intuitiv fühlt. Ich habe durch andere ähnliche Beiträge auf Stack Overflow gewesen, aber wäre gut, Ansichten spezifisch für diese Art von gemeinsamen Nachricht speichern zu erhalten.
36 Stimmen
Ein bisschen alt, aber ich bin hierher gekommen, weil ich auf ein Problem gestoßen bin, das mich zum Nachdenken gebracht hat. In meinem Fall war mein Front-End-Formular auf 2.000 Zeichen begrenzt, aber die in meiner Speichermethode implizierte Kodierung kodierte internationale Zeichen als Mehrfachzeichen (die anscheinend überall zwischen 3 und 12 pro Zeichen liegen können). So werden aus meinen 2.000 plötzlich bis zu 24.000. Etwas zum Nachdenken...
3 Stimmen
Ich habe festgestellt, dass Text bei vielen gleichzeitigen Einfügungen deutlich schneller ist.
1 Stimmen
@JamesS: utf8mb4... >.<
1 Stimmen
Hier ist ein neues Thema: dba.stackexchange.com/questions/210408/
1 Stimmen
@Rick James - Die Frage, die Sie verlinkt haben, ist überhaupt nicht dieselbe Frage. Bitte beachten Sie, dass dieser Thread 400.000 Mal aufgerufen wurde, und Sie schlagen vor, ihn durch etwas mit 35 Aufrufen und Ihrer eigenen Antwort als Top-Antwort zu ersetzen? Die Frage ist nach wie vor gültig und die Antworten hier sind eine nützliche Aufzeichnung.
13 Stimmen
@RickJames erwäge, eine aktualisierte Antwort zu posten, anstatt die Frage zu schließen
3 Stimmen
@YvetteColomb - Ich habe eine Antwort hinzugefügt. Ich möchte vor allem die Angenommene Antwort loswerden, weil sie veraltet . Ich bin zu den Fragen und Antworten gekommen, weil jemand falsche Informationen zitiert hat und sagte: "754 Bewertungen, also muss es richtig sein". OK, ich habe die genehmigte Antwort auch bearbeitet. (Auch wenn sich das unpassend anfühlt.)
2 Stimmen
MySQL :: MySQL 8.0 Referenzhandbuch :: 15.10 InnoDB-Zeilenformate