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