http://www.cnitblog.com/donne/archive/2007/12/04/37319.aspx
锁的深入研究 www.mysqlpub.com/forum.php?mod=viewthread&tid=31891
抢购功能实现 http://blog.csdn.net/liangpei2008/article/details/7920397
for update研究 http://www.cnblogs.com/bigfish--/archive/2012/02/18/2356886.html
秒杀:就是怕在SELECT后与UPDATE之前有其他SELECT
1.笨方法(适用于只有物品和数量, 不能用于激活码等类似)http://blog.sina.com.cn/s/blog_6086b8450101hidf.html
product_id, num类型(产品ID、产品剩余数量, 用户ID)
使用UPDATE tname SET num=num-1 WHERE product_id=1 and num>0
判断影响行数, 记录下用户的UID
2.用事务隔离级别
严格控制事务的隔离级别, 防止一条记录SELECT后UPDATE前被别的用户脏读
3.使用 for update行锁
4.使用行锁
5.使用cache
用Ajax请求写入到memcache中的list里, 如果list长度够了则提示失败, 如果返回成功了则跳转到另一个页面, 看看memcache中的list前n名是否有此用户, 有则提示成功, 否则提示失败
6.乐观锁机制
set sum=sum+#increment# where id=#id#
代替
update 表 set sum=#sum# where id=#id#