Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Welcher DATATYPE ist besser, um TEXT oder VARCHAR zu verwenden?

Das hängt davon ab, wofür Sie es verwenden. Ich hasse es, eine so allgemeine Antwort zu geben, aber es ist wahr. Versuchen Sie im Allgemeinen, den Datentyp so spezifisch wie möglich zu ermitteln. Wenn Ihre Zeichenfolgen niemals eine Obergrenze von Zeichen überschreiten, dann gehen Sie mit VARCHAR weil es etwas effizienter sein wird. Wenn Sie mehr Platz benötigen, wählen Sie TEXT . Wenn Sie sich nicht sicher sind, wie viel Platz Ihr Text einnehmen wird, sollten Sie sich wahrscheinlich für TEXT entscheiden; Der Leistungsunterschied ist nicht sehr groß, und es ist besser, zukunftssicher zu sein, als das Risiko einzugehen, es später ändern zu müssen, wenn sich Ihre Anforderungen ändern. Nur meine zwei Cent.

In den Kommentaren weist Pitarou darauf hin, dass, wenn MySQL eine temporäre Tabelle für Ihre Abfrage erstellt (siehe dies ), TEXT Spalten werden nicht im Speicher gespeichert und müssen von der Festplatte gelesen werden, was viel langsamer ist. (Quelle ). , Ende der Seite.) Dies sollte jedoch für die meisten Abfragen keine Rolle spielen.

Falls sich jemand gefragt hat, wie PostgreSQL abschneidet, habe ich dieser Benchmark das zeigt, dass CHAR, VARCHAR und TEXT alle gleich gut abschneiden. Wenn Sie also Postgres verwenden, spielt es keine Rolle, welchen Typ Sie verwenden.