【问题标题】:R: DuckDB DBconnect is very slow - Why?R: DuckDB DBconnect 很慢 - 为什么?
【发布时间】:2021-02-20 13:34:31
【问题描述】:

我有一个 *.csv 文件,其中包含列式数字和字符串(磁盘上 13GB),我将其导入新的duckdb(或 sqlite)数据库并将其保存,以便稍后在 R 中访问它。但是重新连接会重复它并且是很慢,这是错的吗?

在 R 中,我正在执行以下操作:

library(duckdb)
library(dplyr)
library(DBI)

#Create the DB
con <- dbConnect(duckdb::duckdb(), "FINAL_data.duckdb")

#Read in the csv
duckdb_read_csv(con, "data", "FINAL_data_new.csv") 

然后我关闭 R 并重新启动它以查看它是否有效:

#这超级慢(大约 10 分钟),因为它看起来像是在某处再次写入数据库。但为什么呢?

con <- dbConnect(duckdb::duckdb(), "FINAL_data.duckdb")

注意。我添加了 sqlite 作为标签,因为我认为这不是鸭子数据库所特有的

【问题讨论】:

  • 哪一部分慢?如果它是dbConnect,这对于您的设置或duckdb 包都是特定的。使用 odbcDBI 连接到我曾经使用过的任何 SQL 类型的数据库总是非常快。
  • 哦,这真的很有趣...... dbconnect 在 RStudio 中非常慢。从终端窗口看,闪电般的速度……真奇怪。任何想法为什么?
  • 你试过更新rstudio吗?我没有明显的理由。
  • 或者可能是从 rstudio 启动速度很慢,因为您有很多从之前的会话中保存的大变量。 rm(list =ls()) ; save.image() 可以解决这个问题。
  • 我会试试的,谢谢。仔细检查一下,您是否使用 tbl(con, "data) 作为要查询的对象?

标签: r sqlite duckdb


【解决方案1】:

您遇到的减速是由于数据库在启动时设置检查点。这已经在 master 分支上修复了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-31
    • 2019-10-02
    • 2010-10-30
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多