我是用行锁来实现的
虽然解决了并发的情况,但是对数据库的负载太大了
想问问有没有前辈做过类似功能的,给点建议。。另外问几个问题:
1、一般的数据库操作,如果换成事务操作,负载会不会大很多,最好能有一些分析的数据,大概如何
2、“同一时间段”进行很多的行锁操作,对数据库影响严重吗,例如每一个用户对自己的记录进行行锁
谢谢

解决方案 »

  1.   

    抢的时候换nosql试试?然后再数据转到mysql里
      

  2.   


    可以用 memcache 实现吗
    类似先把前100个人存好,再去进行数据库操作,其它人全部直接返回失败
      

  3.   

    糊弄用户还不简单吗, PHP直接随机数1-60000, 随到1-3的人才查数据库, 其他的都直接说没中.
      

  4.   

    你又不 update 要锁干什么?
    秒杀只不过是在一个很短的时间里接受大量用户提交的事件
    在此时间段内,任何用户的提交都不需要返回是否中标的信息的
    当时间段结束后,才需要排定名次
    这对数据库而言,只是一系列的 insert为了用户体验好点,也只需用 ajax,待时间结束后再发起一次查询就可以了
      

  5.   

    但我要INSERT(只有成功抢到名额的),要锁定同一个用户记录。
    您的意思是指无论多少用户提交事件,都先把记录INSERT,等时间到了再查询出来,下订单,再返回结果给用户吗?
    连续的INSERT操作对数据库的影响怎么样呢?谢谢