我目前正在为客户编写赌博系统,有效地,该系统的工作方式如下:
现在的问题是,现在我们有一个100万个随机排列的数字数组,这很好,但是将其插入数据库的最佳方法是什么呢?
我们有两张桌子
票证
ticketNumbers
当用户决定将门票添加到奖品中时,我们循环通过并创建由每张票的总数量决定的总票,例如每张票1号=100万张,等等。
现在,我们循环检查每张票证的总编号,从数字数组中添加多少数字,然后从原始数组中删除它,这样就没有重复的数字了。
现在问题的根源是这样占用了相当多的内存,并导致页面超时.
还有其他方法可以帮助解决这个问题吗?
我不能提供源代码,但这基本上就是我们正在做的事情,我真正需要的是关于如何处理所有这些数据插入的其他方法的理论。
提前感谢
发布于 2012-07-28 08:56:09
我不太喜欢赌博,所以不太确定这些彩票与赌博有什么关系。
尽管如此,如果您确实需要创建这样数量的数据,则有几个选项。例如,您可以将票证创建从用户移开。我的意思是,每当用户决定“向奖品中添加门票”时,您就将此任务委托给另一个进程/线程,并让用户继续前进。然后,当票证的创建完成时,该过程会以某种方式通知用户。
发布于 2012-07-28 08:57:16
我现在想不出一个最好的解决方案,不尝试一下--你真的必须首先在数据库中保存这些数字吗?如果它的普通数字从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);
https://stackoverflow.com/questions/11702781
复制