我试图用MYSQL创建几个历史表,但性能很糟糕。我可能做得不对。
目前我有以下表格:
id_user cash_d0 cash_d1 cash_d2 ... cash_d135
1 1500 800 400 ... 200
2 50 NULL NULL ... NULL
每晚我将当前用户的现金添加到cash_d0
,并将cash_d2
设置为cash_d1
,cash_d1
至cash_d0
的值。 ..这个"转移"操作需要很长时间。
有没有办法优化这种换班操作?甚至是建立我的桌子的更好方法?
我需要保留历史超过135天,我有大约10个类似的表,跟踪不同变量的历史记录,每个表有136列。
转换由以下行完成(使用Codeigniter):
$this->db->set('cash_d1', 'IFNULL('cash_d1, 0)' + `cash_d0'`, FALSE);
注意:在第0天创建表时,所有列都设置为NULL
,这是我需要处理NULL
值的方式。