我正在运行一个赌场(不是真钱)网站,每当用户在一张桌子上玩一行时,就会生成一个赌场。" trans"在我的数据库上,使这个数据库增长太多,导致我的服务器崩溃
这是表结构
Name Type Collation Attributes Null Default Extra Action
1 user_id int(11) No None Change Change Drop Drop Browse distinct values Browse distinct values Primary Primary Unique Unique Show more actions More
2 amount decimal(16,8) No None Change Change Drop Drop Browse distinct values Browse distinct values Primary Primary Unique Unique Show more actions More
3 aff int(11) No 0 Change Change Drop Drop Browse distinct values Browse distinct values Primary Primary Unique Unique Show more actions More
4 jackpot int(11) No 0 Change Change Drop Drop Browse distinct values Browse distinct values Primary Primary Unique Unique Show more actions More
5 paidout int(11) No 0 Change Change Drop Drop Browse distinct values Browse distinct values Primary Primary Unique Unique Show more actions More
6 type int(11) No 0 Change Change Drop Drop Browse distinct values Browse distinct values Primary Primary Unique Unique Show more actions More
7 created timestamp No CURRENT_TIMESTAMP Change Change Drop Drop Browse distinct values Browse distinct values Primary Primary Unique Unique Show more actions More
这个表实际上有400万行,只有30000个用户(user_id) 我的问题是,有没有办法折叠表每天说,每个用户只保存一行并保持其余额(金额)。
我正在尝试这个没有成功:
更新trans
SELECT * FROM trans
group by user_id
设定金额=(从转移中选择总和(金额)
答案 0 :(得分:0)
这里有一些广泛的步骤:
或
或
你可以编写一个单独的GROUP BY样式查询来添加所有用户信息并返回而不是所有细节 - 可能你正在做的是选择*这耗尽了你所有的记忆..坏