社区
Oracle
帖子详情
插入死锁问题
mydb
2006-11-09 09:07:27
在一进程中对一张表插入一条记录,不提交
在另一进程中也对这张表插入一条记录,此时就发生了死锁等待。
把这张表的所有索引删除,重新创建,问题就没有了!rebuild不管用,必须删除重建。
这种现象是什么原因造成的?
...全文
364
11
打赏
收藏
插入死锁问题
在一进程中对一张表插入一条记录,不提交 在另一进程中也对这张表插入一条记录,此时就发生了死锁等待。 把这张表的所有索引删除,重新创建,问题就没有了!rebuild不管用,必须删除重建。 这种现象是什么原因造成的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzWind
2006-11-11
打赏
举报
回复
LZ估计是事务没有提交
xiaoxiao1984
2006-11-10
打赏
举报
回复
插入数据不锁表
楼主能不能详细一点说说是什么样的表(主键,索引情况),在什么样的操作下造成了死锁
hwl1985
2006-11-10
打赏
举报
回复
oracle应该不限制阿
mydb
2006-11-10
打赏
举报
回复
顶
doer_ljy
2006-11-10
打赏
举报
回复
是不是存在一些楼主没有注意到的约束条件,比如外键之类的。
mydb
2006-11-09
打赏
举报
回复
插入也要锁表?不是吧
mydb
2006-11-09
打赏
举报
回复
顶
allright_flash
2006-11-09
打赏
举报
回复
一个用户对表操作后就被锁定了,操作完成后才被释放,
在一进程中对一张表插入一条记录,提交
在另一进程中也对这张表插入一条记录,此时就不会发生死锁
mydb
2006-11-09
打赏
举报
回复
没使用什么工具啊?在sqlplus里这样,用jdbc也这样啊
doer_ljy
2006-11-09
打赏
举报
回复
首先介所的办法应该是在管理工具里面接触lock而不是重建或者删掉索引。
其次,你说的操作只应该有脏数据的情况,而不是锁。
当两个事务都有同样主键的数据insert时,不会死锁。
应该是-〉其中一个事务commit成功,然后commit晚的那个事务提交失败。不会造成死锁,我就的这个死锁另有缘故。楼主是不是使用什么工具造成的?
mydb
2006-11-09
打赏
举报
回复
没人知道?
MySQL
死锁
套路之唯一索引下批量
插入
顺序不一致
前言
死锁
的本质是资源竞争,批量
插入
如果顺序不一致很容易导致
死锁
,我们来分析一下这个情况。为了方便演示,把批量
插入
改写为了多条 insert。 先来做几个小实验,简化的表结构如下 CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` varchar(5), `b` varchar(5), PRIMARY KEY (`id`), UNIQUE KEY `uk_name` (`a`,`b`) ); 实验1: 在记录不存在的情况下,两个同样顺序的批量 insert 同时执行,第二个会进行锁等待状态 t1 t
Mysql数据库并发
插入
死锁
问题
及处理方式
Mysql有很多坑,对Mysql多线程支持这块不是很熟的话就会莫名其妙地发生一些诡异的
问题
。多线程线程并发操作时最容易产生
死锁
问题
。所以很多大数据的操作一般都采用NoSQL数据库方案来处理,或者读写分离,只需要做好幂等设计即可。如何避免数据库并发1.通过数据库连接池做分发处理:设置何时的数据库连接池参数。如配置:线程池大小,空闲时间,超时时间等。2.永远不要手动开启线程
插入
数据:不要手动开启线程去...
mysql批量
插入
死锁
的
问题
mysql批量
插入
死锁
的
问题
Mysql并发
插入
死锁
问题
比如有1和5两条记录,两个事务分别
插入
2和3,
插入
之前都会使用
插入
意向锁锁定1-5的间隙,但是因为是不同的行,所以不需要互相等待。间隙锁:间隙锁是在索引记录之间的间隙上的锁,或者是第一条记录之前或最后一条记录后的间隙上的锁。for update的用处,第一是对记录加X锁,第二是可以当前读,也就是在可重复读隔离级别下,可以读到其他事务已提交的数据。for update 不存在数据的时候,加的锁是间隙锁吗?结果:同一个事务的间隙锁和
插入
意向锁不会互斥,两个事务之间的间隙锁和
插入
意向锁会互斥。
MySQL
死锁
套路:一次诡异的批量
插入
死锁
问题
分析
线上最近出现了批量insert的
死锁
,百思不得姐。
死锁
记录如下 2018-10-26T11:04:41.759589Z 8530809 [Note] InnoDB: *** (1) TRANSACTION: TRANSACTION 1202026765, ACTIVE 0 sec inserting mysql tables in use 1, locked 1 LOCK WAIT 3 loc...
Oracle
17,137
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章