MySQL использовать JOIN или хранить напрямую

У меня есть столы users а также posts, Таблица users есть столбцы user_id а также usernameи стол posts есть столбцы post_id а также user_id,

Когда я получаю сообщения, я также хочу получить имя пользователя, так что лучше использовать JOIN между таблицами users а также posts получить имя пользователя или сохранить имя пользователя также в таблице posts?

Как JOIN влияет на производительность, если у вас есть несколько миллионов строк в posts а также users таблицы?

-1

Решение

Общепринятой практикой является использование оператора JOIN и отсутствие имени пользователя в таблице сообщений. Это нарушит нормальную форму и приведет к избыточным данным. Кроме того — что произойдет, если имя пользователя изменится? Тогда у вас есть две таблицы (пользователи, сообщения), которые больше не совпадают, потому что будут записи, где user_id не будет совпадать с именем пользователя. Просто некоторые вещи для рассмотрения.

1

Другие решения

Вот почему у нас есть RDMS, несколько миллионов строк не имеют большого значения для MySQL. Если вы думаете о сохранении имени пользователя в данных поста, вам следует подумать о базах данных NoSQL.

1