mysql innodb引擎 insert 数据时 默认会加什么锁
我最近做一个抽奖活动
每个人只能抽一次
我想每个抽奖请求进来,先插入一条记录,然后再读取第一条记录进行比对,以此确定他是否第一次抽奖,如果不是第一次就把这个无用记录删除,并返回错误
这样会有大量的innsert delete操作
这两个操作会锁表吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
用redis缓存拦截,再用ON DUPLICATE KEY UPDATE看返回影响行数,返回结果
innodb
引擎的insert,update,delete
操作都会给操作数据加上排他锁(行级锁).这时候其他事务是没法对这行数据进行操作的.1.感觉你这样麻烦了
2.InnoDB是行锁
除了@start2004的回答外,还可以把每个角色的请求放到一个单独的队列中执行,这样就可以先查询再插入了