Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL:更改具有一百万行的SQL表的结构_Mysql_Pivot_Innodb - Fatal编程技术网

Mysql SQL:更改具有一百万行的SQL表的结构

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

我有一个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     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标记上搜索。类似的问题也得到了回答。