NutzCN Logo
问答 多线程同时对一张表进行操作,如何解决锁表问题??
发布于 1397天前 作者 qq_36b64d67 9973 次浏览 复制 上一个帖子 下一个帖子
标签:

如题,假如有两个线程往同一张表中插入数据,当一个线程出错时造成的锁表如何解决?

23 回复

出错为啥会锁表

@wendal 对同一张表两个线程同时操作不出错都会锁表么?

mysql的话看引擎, 是行锁还是表锁, 一般都是innodb, 行锁, 不会锁表. 除非主动加了锁表指令, php常干的事

@wendal sqlserver数据库多线程操作如何处理这些锁呢

@wendal 多线程往同一张表中插入数据时候

一般不需要管的呀

@wendal 我现在是开启多个线程每个线程都有一个事物,在进行插入操作时表旧锁死了,是什么原因呢

什么数据库什么引擎

除了插入, 还做了什么操作? 查询?

@wendal 没有,全程只有对表的插入操作

报错信息贴来看看

@wendal 没有报错,但是打开数据库插入的这些表都一直卡在载入中,然后发现被锁住导致卡死了

既然只是插入, 那就不需要事务啦,去掉试试

@wendal 不开启事物没错,但是出错了肯定要回滚嘛

@wendal 对了,在对表插入操作之前有个清空操作

qq_36b64d67 打赏 11楼•24分钟前
@wendal 没有,全程只有对表的插入操作

所以呀... 哈啊哈

@wendal 这个要如何解决,我也是刚发现前面有这个清空操作

清空操作是全表清空??? 或者条件太宽泛,导致锁定的行太多了吧

@wendal 表之前有数据,要把之前的数据全部清空然后再进行插入操作,TRUNCATE TABLE

够狠的, 这还多线程个毛线...

@wendal 那要怎么处理,插入之前必须先清空之前的数据

一个线程干咯

添加回复
请先登陆
回到顶部