Скажем, у меня есть такая таблица:
create table users (
user_id int not null auto_increment,
username varchar,
joined_at datetime,
bio text,
favorite_color varchar,
favorite_band varchar
....
);
Скажем, что со временем все больше и больше столбцов - таких как favour_animal, favour_city и т. Д. - добавляются в эту таблицу.В конце концов, есть около 20 или более столбцов.
На данный момент я чувствую, что хочу переместить столбцы в отдельную таблицу user_profiles
, чтобы я мог сделать select * from users
без возврата большого числаобычно нерелевантных столбцов (например, favour_color).И когда мне нужно выполнить запрос по favour_color, я могу просто сделать что-то вроде этого:
select * from users inner join user_profiles using user_id where
user_profiles.favorite_color = 'red';
Хорошая идея - переместить столбцы из основной таблицы во «вспомогательную» таблицу?
Или лучше хранить все столбцы в таблице users
и всегда указывать столбцы, которые я хочу вернуть?Например,
select user_id, username, last_logged_in_at, etc. etc. from users;
Какие здесь вопросы производительности?