从多个节点读取/写入SQLite中的同一表/DB

从多个节点读取/写入SQLite中的同一表/DB,sql,r,sqlite,sqldf,Sql,R,Sqlite,Sqldf,我用R创建了一个SQLite数据库,现在我想从多个内核中并行读取数据,这些内核多次访问同一个SQLite数据库,并多次写入另一个数据库,大约并行1000次或更多次。但是,当我尝试执行此类操作时,会出现以下错误: sqliteFetch(rs, n = -1, ...) : RSQLite driver: (RS_SQLite_fetch: failed first step: database is locked) 在我的脚本中,我运行了以下两个命令,我认为这两个命令给出了错误,不确定它是来

我用R创建了一个SQLite数据库,现在我想从多个内核中并行读取数据,这些内核多次访问同一个SQLite数据库,并多次写入另一个数据库,大约并行1000次或更多次。但是,当我尝试执行此类操作时,会出现以下错误:

sqliteFetch(rs, n = -1, ...) : 
RSQLite driver: (RS_SQLite_fetch: failed first step: database is locked)
在我的脚本中,我运行了以下两个命令,我认为这两个命令给出了错误,不确定它是来自于读取还是写入:

dbGetQuery(db1, sql.query) 
# later on...
if(dbExistsTable(db2, table.name){
dbWriteTable(db2, table.name, my.df, append = T)
} else {
dbWriteTable(db2, table.name, my.df)
}
你知道这样的操作是否可行吗?如果是这样的话,无论如何要这样做并避免这样的错误?我以前问过这个问题,有人提到数据库的ACID设计,这让我认为这样的操作应该是可能的,但不知何故它不起作用

我也愿意接受一些建议,例如,哦,你可以使用MySQL来做到这一点,应该工作得更好,等等


谢谢

@dickoa谢谢。这稍微澄清了这个问题,接下来的问题是,我是否应该迁移到MySQL,然后我就可以这样做?或者有什么解决方案吗?我个人认为Postgres是比MySQL更好的RDBMS,您可以使用优秀的RPostgresSQL。但是,如果出于任何原因,您想坚持使用MySQL,请尝试使用MariaDB。