当前位置:编程学习 > JAVA >>

急!急!急,怎么样能最快速的判断大批量数据的剩余次数,具体请看需要,谢谢

现在项目有需求如下:

    数据结构:号码 次数,现在有1万个,如:0000 2次、0001 3次、0002 4次、0003 3次……,每个号码计数只能固定次数,如5次,如何最快速判断这批号码的每个剩余数:

    1、每个号码的剩余次数等于限制次数-已存总数-重复出现次数,如果超过剩余数,则按剩余数存储;
    2、现在采用多线程循环查询判断方式,瞬间查询数据库太频繁,有时需要好几分钟,如何优化;
    3、是否有新的解决方案,判断时间能优化到20秒内可接受;

 

本项目是在手机上运行的个彩票投注系统,所以会涉及到大批量号码判断剩余注数情况,或者有什么新的思路和方案呢,希望各位大侠能指点迷津,非常感谢! --------------------编程问答-------------------- 做成内存表。 --------------------编程问答--------------------
引用 1 楼 forgetsam 的回复:
做成内存表。


怎么做呢?因为这个系统是运行在Android平板端的,用的数据库是sqlite --------------------编程问答-------------------- 没玩过彩票,不熟悉应用场景。
想获得一条记录的剩余数,可以将剩余数做成一个字段,每次插入和更新的时候,都顺带更新;
这样就能迅速查询到剩余数了。 --------------------编程问答-------------------- 顶下。。 --------------------编程问答--------------------
引用 3 楼 preferme 的回复:
没玩过彩票,不熟悉应用场景。
想获得一条记录的剩余数,可以将剩余数做成一个字段,每次插入和更新的时候,都顺带更新;
这样就能迅速查询到剩余数了。


这个情况会有,但是现在是另一个场景,要提前就知道这一注号码是否可以下注,如果超注,当场就要告知用户无法下注的,现在是同时如果用户要下注1万注号码,要同一时间判断这个,所以比较费时,现在的多线程的方案不是很理想,应该说是糟糕的方式了 --------------------编程问答-------------------- 我现在用这种方式去解决:

先分组,按号码去分组查询出所有号码,扔在内存里,接着去起20个线程去内存里逐一匹配合适的。。。。

数据库, 只查询了一次,虽然会多,但是分组查询能快好多,关键是只查一次,余下的20个线程在判断

但是这20个线程去判断的时候还是有点卡,平均能在14-20秒判断出结果,不知道还能不继续优化 --------------------编程问答-------------------- 我的QQ是 77046237 , 要是有时间,楼主加一下我。谢谢。
我是对彩票一窍不通,但是,对算法的兴趣还算可以。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,