首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OneToMany关系占用更多数据库空间

问OneToMany关系占用更多数据库空间
EN

Stack Overflow用户
提问于 2012-02-04 21:54:41
回答 1查看 40关注 0票数 0

我们将特定于用户的配置从create table user (id, name, ..., config1, config2, config3, ..)重构为

代码语言:javascript
复制
create table user (id, name, ...);
create table user_config (id, user_id, config_val);

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

EN

回答 1

Stack Overflow用户

发布于 2012-02-04 22:16:07

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

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

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

因此,很可能出现这样的情况:您的数据需求急剧增加。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9141374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档