MySQL 彩票处理最佳实践

问题描述 投票:0回答:1

我遇到过这样的情况:彩票系统一次处理交易的水平非常高,让我给您介绍一下背景:

  1. 有 10 种不同的抽奖方式。

  2. 每次抽奖都有很多场比赛,每场比赛都有很多号码。

  3. 每个号码都有限制,如果号码已经达到限制,我就不能再接受这个号码的投注了。

  4. 大约。单日下注总数为 68,000,即我的视图中有 68,000 行。

  5. 我在 MySQL 视图上有这种关系,示例:来自具有事务的 2 个表的联接的结果:

    Draw   Game  Number   accumulated   limit   
      01    16    10      70,000         75,000
      02    17    0102    65,000         60,000
      03    18    123     20,000         25,000
      ...    ..    ...     ....          ......
      ...    ..    ...     ....          ......
    

    总行数 = 68,000

    我的问题是,我必须检查从此视图中累积的每个传入的新号码,以避免超出限制。

    我已经采取了很多方法,但系统仍然很慢:

    1. 我从视图中进行选择,但是MySQl中的视图非常慢,这不是一个好的做法。
    2. 我做了一个“从视图中选择插入到 tmptable ”以使查询更快,但仍然很慢。
    3. 如果我直接从这两个表进行查询并避免使用视图,它将锁定表并导致问题。

    服务器非常强大,但我需要一种新方法来改进这个过程。 预先感谢。

mysql view processing
1个回答
0
投票

考虑使用redis进行调峰。使用redis的set方法,对每个请求进行原子递增,保证到数据库的数据不超过限制。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.