高并发情况下,主键自增是否会导致insert语句执行的时候锁表?

qq_18640381 2015-08-27 08:10:51
楼主最近遇到了一个问题,一个业务流程对数据库插入操作的时候并没有做异步处理,在高并发情况下,出现卡死现象。

楼主初步怀疑是数据库层面的原因导致,在这个业务流程中,涉及到了顺序对多张主键为自增的表进行insert跟update操作。并且

这些操作都是在事物中执行的。

请问对主键自增的表进行insert操作的时候是否会锁表,在高并发情况下,多次insert操作是否会因为锁表而进行排队。

如果表的主键是uuid的话,那么insert操作是否会有锁表?

额外再问个问题,update操作应该是对单条数据进行锁定,而不是对整张表进行锁定吧。
...全文
1703 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_18640381 2015-08-28
  • 打赏
  • 举报
回复
引用 2 楼 xu176032 的回复:
如果主键用的是序列,insert不会锁表,再高的并发都不会,update如果锁表,说明你程序逻辑有问题,分析一下锁表的原因,跟oracle机制没什么关系
虽然回答晚了,但是还是谢谢你了,昨晚测试了一下,开了十个session循环插入数据,可以看到数据库的新增数据是交错的
xu176032 2015-08-28
  • 打赏
  • 举报
回复
如果主键用的是序列,insert不会锁表,再高的并发都不会,update如果锁表,说明你程序逻辑有问题,分析一下锁表的原因,跟oracle机制没什么关系
卖水果的net 2015-08-28
  • 打赏
  • 举报
回复
你这个自增列是如何实现的? 你的第二个问题:只加行锁,不加表锁。共享的。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧