MYSQL垂直VS水平标准化VS阵列分隔
您好,感谢帮助男士和女士们。
我想知道存储这种数据的最佳方法是什么,垂直(标准化)或水平(序列化数组 - 分隔)。
我担心数据集非常大时的查询时间,请看下面我的意思。
Names
----------
Id, name
1, jack jones
2, beth smith
3, jo blogs
Data values (normal)
----------
Id, value, date(Y M D)
1, 1.3, 20140101
2, 2.6, 20140101
3, 5.4, 20140101
1, 1.6, 20140102
2, 2.5, 20140102
3, 5.7, 20140102
1, 1.75, 20140103
2, 2.51, 20140103
3, 5.78, 20140103
Data values (array)
----------
Id, array
1, 1.3=>20140101; 1.6=>20140102; 1.75,=>20140103
2, 2.6=>20140101; 2.5=>20140102; 2.51=>20140103
3, 5.4=>20140101; 5.7=>20140102; 5.78=>20140103
我知道它说标准化是最好的,但是让我们说那里有1.5亿个名称,然后是2000个值的日期,每个将是3000亿行。 但是,如果数据存储在与数组/分隔符相同的行中,则只有1.5亿行。
数据也可以像这样(下面)存储,因为我知道每个分号后的第二天。
Data values (delimited)
----------
Id, array
1, 1.3;1.6;1.75
2, 2.6;2.5;2.51
3, 5.4;5.7;5.78
如果我想查询规范化数据,系统必须经过3000亿行并找到匹配的ID,但是分隔的方式只需要找到一个匹配,并且在找到1之后将获得所需的所有数据记录查询可以停止。
你觉得怎么样?
注意:此数据将用于创建图表,例如条形图5.4,5.7,5.78。