Mysql SQL:更改具有一百万行的SQL表的结构
我有一个tablelets称之为mytable,结构如下。该表每天记录近100万行Mysql SQL:更改具有一百万行的SQL表的结构,mysql,pivot,innodb,Mysql,Pivot,Innodb,我有一个tablelets称之为mytable,结构如下。该表每天记录近100万行 id date timestamp licenseid storeid deviceid value 1 2015-06-12 17:36:15 lic0001 1 0add -52 2 2015-06-12 17:36:15 lic0002 1 0add -54 3
id date timestamp licenseid storeid deviceid value
1 2015-06-12 17:36:15 lic0001 1 0add -52
2 2015-06-12 17:36:15 lic0002 1 0add -54
3 2015-06-12 17:36:15 lic0003 1 0add -53
4 2015-06-12 17:36:21 lic0001 1 0add -54
5 2015-06-12 17:36:21 lic0002 1 0add -59
6 2015-06-12 17:36:21 lic0003 1 0add -62
7 2015-06-12 17:36:21 lic0004 1 0add -55
8 2015-06-12 17:36:15 lic0001 1 0bdd -53
9 2015-06-12 17:36:15 lic0002 1 0bdd -52
10 2015-06-12 17:36:15 lic0003 1 0bdd -52
11 2015-06-12 17:36:15 lic0004 1 0bdd -50
12 2015-06-12 17:36:33 lic0002 1 0bdd -54
13 2015-06-12 17:36:33 lic0003 1 0bdd -54
14 2015-06-12 17:36:33 lic0004 1 0bdd -55
15 2015-06-12 17:36:33 lic0005 1 0bdd -40
我需要使用上面相同的数据,并在一天结束前将其重新安排在一个新表中,如下所示。考虑到我的表大小,我应该使用什么sql查询来获取下面的输出并将其存储在名为“newtable”的新表中。许可证ID的数量是可变的
id date timestamp deviceid storeid lic001 lic002 lic003 lic004 lic005....
1 2015-06-12 17:36:15 0add 1 -52 -54 -53
2 2015-06-12 17:36:21 0add 1 -54 -59 -62 -55
3 2015-06-12 17:36:15 0bdd 1 -53 -52 -52 -50
4 2015-06-12 17:36:33 0bdd 1 -54 -54 -55 -40
我需要这样做,以根据已知等式和使用单个许可证值,对每个存储ID的每个时间戳的每个deviceid执行计算,并对每个值进行转换,最后为每个存储ID的每个时间戳获得唯一值 我认为您混淆了数据显示与数据存储和检索,而“id”在这种情况下毫无意义。您建议对表进行非规范化。如果你不知道这个词,请阅读。在大型SQL表的世界中,非规范化通常是有害的,并且仅仅是通过非常具体的性能需求来证明的。您所要求的查询类型是一个*支点,用于您的信息。告诉我们更多关于您正在尝试做的事情,SO社区可能会提出一个很好的建议。此外,如果您将日期和时间列合并到一个DATETIME列中并对其编制索引,您访问该大表的速度将大大加快。我需要这样做,以便对每个deviceid执行计算,并根据已知公式和使用单个许可证值,对每个值进行转换,最终为每个存储每个时间戳的每个deviceid获得唯一值。在pivot标记上搜索。类似的问题也得到了回答。