Es ist wahr, dass TEXT jede Eingabe verarbeiten kann, die Sie in VARCHAR- oder CHAR-Felder platzieren würden. Tatsächlich könnte TEXT mit Daten umgehen, die Sie vielleicht in DECIMAL, INT oder fast jeden anderen Typ einfügen möchten. Nach dieser Logik könnten wir genauso gut jede Spalte zu einem TEXT-Typ machen.
Aber das wäre ein Fehler. Wieso den? Weil die Verwendung des geeigneten Spaltentyps für die erwartete Eingabe es der Datenbank ermöglicht, Abfragen besser zu optimieren, weniger Speicherplatz benötigt und das Datenmodell leichter zu verstehen und zu warten ist.
In Bezug auf die Fragen:Eine Benutzernamenspalte sollte VARCHAR (20) verwenden, da Sie möchten und erwarten würden, dass die meisten Benutzernamen zu kurz werden, normalerweise nicht mehr als 10 - 20 Zeichen lang. Für eine Rezensionsspalte (wie eine Filmkritik oder eine Buchbesprechung) wäre ein TEXT-Typ geeignet, da Rezensionen einen einzelnen Absatz bis zu mehreren Seiten umfassen können.
Versuchen Sie in Bezug auf Indizes diesen Link:
http://20bits.com/articles/interview-questions-database-indexes/