高并发计数器(用于信用管理)

时间:2011-02-24 12:13:34

标签: mysql counter

我想知道速度和准确性的最佳方法,这就是我们的应用程序:

  1. 检查积分是否为1或以上(预检)
  2. 处理工作(需要一点时间)
  3. 工作完成,检查是否仍有学分完成工作(学分1或以上)
  4. 扣除信用
  5. 完成工作
  6. 此过程重复50,000次(使用队列系统进行线程化)并且当前正在使用mysql数据库来处理计数器。

    除了mysql数据库样式计数器之外还有更好的解决方案吗?

    我在想一个类似的架构:

    user_id | credit_count
    

    这是我应该使用的最佳架构吗? 并且线程只是锁定行而不是扣除信用,而不是释放下一个线程的行。

2 个答案:

答案 0 :(得分:0)

不确定您使用的是哪种技术。

你可以以某种方式累积你的进程语言中的计数,并且只是不时地将计数器转储到数据库。 你不会增加每个请求的计数,但每n个请求......

答案 1 :(得分:0)

有没有看过memcached?如果你想坚持使用mysql,你可以将表更改为内存表。

read this