我们将特定于用户的配置从create table user (id, name, ..., config1, config2, config3, ..)重构为
create table user (id, name, ...);
create table user_config (id, user_id, config_val);进行此更改并将用户从较旧的表迁移到较新的表之后,我们的MySQL数据库大小增加了2倍。我们这样做是为了使用户配置可扩展,但为什么空间需求会因此而增加。可能的原因是什么。
发布于 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 (外键)字段。除此之外,现在还需要生成更多的索引数据。
因此,很可能出现这样的情况:您的数据需求急剧增加。
https://stackoverflow.com/questions/9141374
复制相似问题