1

我在多个内核上运行 R 脚本,它将数据插入到已经包含超过 7 亿行的表中。因为表变得太大,死锁变得很常见,因为我在多个内核上运行相同的脚本更是如此。我一直在尝试使用 TryCatch 解决这些死锁,但无济于事,脚本仍然崩溃,让我重新运行脚本。RMySQL 本身是否有任何功能可以应对死锁,或者是否有人对解决这些死锁的方法有任何建议?

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

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

1 回答 1

0

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

于 2015-04-24T17:51:21.813 回答