RMySQL死锁解决方法

时间:2013-05-24 11:39:52

标签: mysql r multiprocessing database-deadlocks rmysql

我正在多个核心上运行一个R脚本,它将数据插入到已经拥有超过700米行的表中。由于表变得过大,因此死锁正在变得越来越普遍,因为我在多个核心上运行相同的脚本。我一直在尝试使用TryCatch解决这些死锁,但无济于事,脚本仍然崩溃,让我重新运行脚本。在RMySQL中是否有任何函数可以解决死锁问题,或者有没有人对解决这些死锁的方法有任何建议?

这是我用来尝试避免它的代码,但它绝不漂亮(甚至不起作用)。它只是继续尝试插入脚本直到它工作,但死锁一直崩溃了脚本。

   while(done == FALSE){
       dberror = tryCatch({
          dbSendQuery(con, SQLrs)
          done = TRUE
        }, dberror = function(e){
          print("failed, try again")
        })
    }

1 个答案:

答案 0 :(得分:0)

抱歉,我的问题有点晚了,但我遇到了类似的问题,并且可以通过调整SQL中的MySQL超时来解决问题。我不认为你可以通过RMySQL做任何事情。有关如何调整MySQL connect_timeout的信息,请参阅this Stackoverflow post