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