gpt4 book ai didi

mysql - 一对多关系占用更多数据库空间

转载 作者:行者123 更新时间:2023-11-29 14:35:32 25 4
gpt4 key购买 nike

我们重构了用户特定的配置创建表用户(id,name,...,config1,config2,config3,..)

create table user (id, name, ...);
create table user_config (id, user_id, config_val);

在进行此更改并将用户从旧表迁移到新表后,我们的 MySQL 数据库大小增加了 2 倍。我们这样做是为了使用户配置可以扩展,但为什么空间需求会因此而增加。可能是什么原因。

最佳答案

如果您有一个包含 20 个字段的原始表和 1,000,000 个用户,那么这将是 20 * 1,000,000 = 20,000,000 个数据项。

例如,您现在拥有相同数量的用户,但将表减少到 10 个字段,并且有 10 个配置行,每行包含 3 个字段(根据您的代码)。这将是 10 * 1,000,000 + 10 * 3 * 1,000,000 = 50,000,000。这将是 2.5 倍。

所以,基本上,对于每个配置变量,您现在添加一个 id(主键)和一个用户(外键)字段。除此之外,现在还需要生成更多索引数据。

所以,很可能您的数据需求急剧增加。

关于mysql - 一对多关系占用更多数据库空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141374/

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