gpt4 book ai didi

mysql - 什么时候将列从主表移到辅助表中是个好主意?

转载 作者:可可西里 更新时间:2023-11-01 06:36:30 27 4
gpt4 key购买 nike

假设我有一个这样的表:

  create table users (
user_id int not null auto_increment,
username varchar,
joined_at datetime,
bio text,
favorite_color varchar,
favorite_band varchar
....
);

假设随着时间的推移,越来越多的列(如 favorite_animal、favorite_city 等)被添加到该表中。最终,大约有 20 列或更多列。

在这一点上,我想将列移动到一个单独的user_profiles 表是这样我可以select * from users 没有返回大量通常不相关的列(如最喜欢的颜色)。当我确实需要通过 favorite_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;

这里涉及到哪些性能方面的考虑?

最佳答案

不要使用辅助表,如果它要包含一组没有概念凝聚力的杂项字段。

Do 如果您可以对多个字段进行良好的概念性分组,则使用单独的表格,例如地址表。

当然,您的应用程序有其自身的性能和规范化需求,您应该只在适当考虑自己的情况的情况下应用此建议。

关于mysql - 什么时候将列从主表移到辅助表中是个好主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5539036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com