多个用户同时操作一个表的问题
程序员文章站
2022-06-02 20:19:12
...
请教一个问题
比如说建立了一个 会员号表 id cardsn(会员号) uid cardsn是连续的 像 031001 ,031002 现在有这样一个功能 点击一个按钮增加5条记录 且是连续的 那么每次就要获取最新的会员号 然后以此为基准 连续生成5个号 插入数据库 问题就是如果多个用户同时操作这个表 那么每次获得的最新一条记录用来连续 就不准确了 请教一下大家 这个问题应该怎么解决
比如说建立了一个 会员号表 id cardsn(会员号) uid cardsn是连续的 像 031001 ,031002 现在有这样一个功能 点击一个按钮增加5条记录 且是连续的 那么每次就要获取最新的会员号 然后以此为基准 连续生成5个号 插入数据库 问题就是如果多个用户同时操作这个表 那么每次获得的最新一条记录用来连续 就不准确了 请教一下大家 这个问题应该怎么解决
回复讨论(解决方案)
你可以开启事务。
如果5个用户同时对表操作,总有个先后的,你可以参考mysql事务处理,当你用户操作表的时候,会把表锁住,等操作完,其他用户才会继续操作。
如果并发很大,建议通过memcache队列的形式处理,缓解数据库表的压力。
使用队列形式处理
如果5个用户同时对表操作,总有个先后的,你可以参考mysql事务处理,当你用户操作表的时候,会把表锁住,等操作完,其他用户才会继续操作。
如果并发很大,建议通过memcache队列的形式处理,缓解数据库表的压力。
使用队列形式处理
能不能给具体说一下思路 使用事?
先?表,?理完再解除?定。
?考: http://koda.iteye.com/blog/471713
使用事?
先?表,?理完再解除?定。
?考: http://koda.iteye.com/blog/471713
使用事?
先?表,?理完再解除?定。
?考: http://koda.iteye.com/blog/471713
锁表就是将原来并行的操作变成了串行操作
当然要影响性能的
锁表就是将原来并行的操作变成了串行操作
当然要影响性能的
使用了表锁就产生了排队,但不会引起插入失败
使用了表锁就产生了排队,但不会引起插入失败
谢谢斑竹的热心回答谢谢大家的热心回答