[求助]最近小弟在开发一个程序但出现数据库死锁问题
时间:2011-10-29
来源:互联网
因为怕顺序写下来执行速度太慢 所以每个算法都是一个线程 到时候每天定时开启所有的算法
本机运行没问题 但在服务器上跑就死锁
不知道应该如何处理
希望处理过这方面问题的朋友介绍下经验!谢谢!
作者: dunerunner 发布时间: 2011-10-29
20个算法把数据插入按20张表中,
一张表可能会造成数据太大 查询数据会很慢
20个线程同时往一张表中插入数据的时候很可能会造成事务之间的死锁 等待
作者: kiss601459202 发布时间: 2011-10-29
作者: kiss601459202 发布时间: 2011-10-29
建议 20个算法 不要插入同一张表,
20个算法把数据插入按20张表中,
一张表可能会造成数据太大 查询数据会很慢
20个线程同时往一张表中插入数据的时候很可能会造成事务之间的死锁 等待
设计不可能改变 与其将一张表分成20张表 我还不如不使用多线程改为顺序执行程序 也不会造成死锁
难道没有更高明的解决办法了吗
作者: dunerunner 发布时间: 2011-10-29
不然,一个线程在操作这个表,这个表就被上锁了,其它表又不能操作。然后锁表的那个线程可能又要等其它线程的结果。这样就死锁了。
或者优化下算法。一个线程的结果先插入进去,然后放弃锁。给其它线程用。反正就是线程间调度好。
作者: brightyq 发布时间: 2011-10-29
作者: coolbamboo2008 发布时间: 2011-10-29
引用 1 楼 kiss601459202 的回复:
建议 20个算法 不要插入同一张表,
20个算法把数据插入按20张表中,
一张表可能会造成数据太大 查询数据会很慢
20个线程同时往一张表中插入数据的时候很可能会造成事务之间的死锁 等待
设计不可能改变 与其将一张表分成20张表 我还不如不使用多线程改为顺序执行程序 也不会造成死锁
难道没有更高明的解决办法了吗
设计是需要建立在实际应用上
作者: kiss601459202 发布时间: 2011-10-29
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28