我目前正在为客户编写赌博系统,有效地说,系统的工作方式如下:
现在问题是我们有一个随机排序的100万个数组的数组,这很好,但是将它插入数据库的最佳方法是什么?
我们有两张桌子
门票
ticketNumbers
当用户决定将门票添加到奖品时,我们循环并创建总票数,该总票数由每张票的总数量确定,例如:每张票1张= 100万张票等......
现在我们循环检查每张票的总数,从我们的数组中添加多少,然后将其从原始数组中删除,这样就没有重复的数字了。
现在出现的问题是,这会以这种方式占用大量内存并导致页面超时....
是否有其他方式可以建议帮助克服这个问题?
P.S。我无法提供源代码,但这基本上就是我们正在做的事情,我真正需要的是其他方法的理论,我可以处理所有这些数据的插入。
提前致谢
答案 0 :(得分:1)
我不是真正参与赌博,所以不确定这些门票与赌博有什么关系。
也就是说,如果你真的需要创建如此大量的数据,那么有一些选择。例如,您可以将创建故障单远离用户。我的意思是,每当用户决定“将门票添加到奖品”时,您将此任务委托给另一个进程/线程并让用户继续前进。然后,当完成票证的创建时,该过程以某种方式通知用户。
答案 1 :(得分:1)
我现在想不出最好的解决方案而不尝试其他东西 - 你真的必须首先将数字保存在数据库中吗?如果它的普通数字从000000到999999,那么你可以动态生成它们,这可能会更有效。
为了通常克服超时问题,您可以随时增加默认的php超时或完全禁用此特定任务:
//set php script timeout, 0 to disable
set_time_limit(0);
// your time consuming code
//don't forget to reset to 30 seconds.
set_time_limit(30);