Скажем, у меня есть такая таблица:
create table users (
user_id int not null auto_increment,
username varchar,
joined_at datetime,
bio text,
favorite_color varchar,
favorite_band varchar
....
);
Скажем, со временем все больше и больше столбцов, таких как избранное_animal, избранное_city и т. д., получают добавлен в эту таблицу. В итоге получается 20 или более столбцов.
На данный момент я чувствую, что хочу переместить столбцы в отдельный
Таблица user_profiles
позволяет мне выполнять выбор * из пользователей
без
возвращает большое количество обычно нерелевантных столбцов (например,
любимый цвет). И когда мне нужно сделать запрос по favourite_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;
Какие соображения производительности здесь задействованы?