Вярно е, че TEXT може да обработва всяко въвеждане, което бихте поставили в полето VARCHAR или CHAR. Всъщност TEXT може да обработва и данни, които може да искате да поставите в DECIMAL, INT или почти всеки друг тип. Следвайки тази логика, можем да направим всяка колона тип ТЕКСТ.
Но това би било грешка. Защо? Тъй като използването на подходящия тип колона за очаквания вход позволява на базата данни да оптимизира по-добре заявките, използва по-малко дисково пространство и прави модела на данни по-лесен за разбиране и поддръжка.
По отношение на въпросите:колона с потребителско име трябва да използва VARCHAR(20), тъй като бихте искали и очаквате повечето потребителски имена да са кратки, обикновено не повече от 10 - 20 знака. За колона за рецензии (като рецензия на филм или рецензия на книга) тип TEXT би бил подходящ, тъй като рецензиите могат да обхващат един параграф до няколко страници.
По отношение на индексите, опитайте тази връзка:
http://20bits.com/articles/interview-questions-database-indexes/