多次提交Db.batch,出现死锁或Waiting for table metadata lock

mysql数据库,5000多次提交Db.batch,A表插入25万条数据,B表插入35万条数据,有时会出现死锁或Waiting for table metadata lock,求大神解答

评论区

JM-java

2018-12-13 16:57

原因第一是因为在程序中创建了静态线程变量,druid的回收机制没有处理也不会识别. 第二,检查线程中对数据操作是否开启了autocommit,和数据库不一致,这个操作没操作好代码对线程池配置是致命的.第三,最好多线程测试时,事务控制用tx拦截器,不要自己画蛇添足.