数据库并发问题

liangpei2008 2012-08-22 09:31:18
背景:
1.我在做一个限量抢购的功能,例:每天只放10件物品,即:每次都要先统计一下每天的发放数量,而后再做更新处理。这时就可能会遇到数据库并发问题。例如,N个进程同时访问到数量,造成数据不准。
2.数据表可以用innodb
3.前端用PHP

问题:
这种情况我是用事务,还是用LOCKTABLE ?
1.如用事务,会不会存在N个PHP进程同时启动该事务?造成死锁?
2.如用LOCKTABLE,能否把READ锁加上,保证同一时间只能由一个进程访问该表。
...全文
114 点赞 收藏 7
写回复
7 条回复
Rotel-刘志东 2012年08月26日
事务去解决,先锁记录,提交后,锁的释放,下一次再提交。
回复 点赞
wwwwb 2012年08月23日
一般用事务,先锁记录(其它用户等待),提交后,释放锁,下一次提交
回复 点赞
Rotel-刘志东 2012年08月23日
这种情况得用事物处理。
回复 点赞
liangpei2008 2012年08月23日
如果用.NET 或Java用Synchronized来实现并转串访问,PHP不了解如何做,所以才想到在DBMS层实现。
请问ACMAIN_CHM,如果用事务,能否保证多个并发的连接安全地串行访问?谢谢
回复 点赞
ACMAIN_CHM 2012年08月22日
用事务

回复 点赞
rucypli 2012年08月22日
1 可能
2 如果人工用锁的话 可能会导致很多用户出现等待状态
如果真的做成抢购,而不是伪抢购模式,我怕到真的抢购的时候数据库会瘫掉
回复 点赞
rucypli 2012年08月22日
貌似淘宝在做类似抢购的业务的时候在前端就挡掉大部分的请求
回复 点赞
发动态
发帖子
MySQL
创建于2007-09-28

2.4w+

社区成员

5.5w+

社区内容

MySQL相关内容讨论专区
社区公告
暂无公告