我们重新考虑了用户特定的配置
create table user (id, name, ..., config1, config2, config3, ..)
到
create table user (id, name, ...);
create table user_config (id, user_id, config_val);
进行此更改并将用户从旧表迁移到较新的表后,我们的MySQL数据库大小增加了2倍。我们这样做是为了使用户配置可以扩展,但为什么空间要求因此而上升。可能是什么原因。
答案 0 :(得分:1)
如果你有一个包含20个字段和1,000,000个用户的oritinal表,那就是20 * 1,000,000 = 20,000,000个数据项。
例如,假设您现在拥有相同数量的用户,但将表减少到10个字段,并且有10个配置行,每个配置行包含三个字段(根据您的代码)。这将是10 * 1,000,000 + 10 * 3 * 1,000,000 = 50,000,000。这将是2.5的一个因素。
因此,基本上,对于每个配置变量,您现在都添加了一个id(主键)和一个用户(外键)字段。除此之外,现在还有更多的索引数据需要生成。
因此,很可能是您的数据要求急剧增加。