sqlite - RSQLite大表的更快子集?

标签 sqlite r

所以我有一个很大的数据集(请参阅上一个问题),我需要根据另一个表中的ID对其进行子集化

我使用如下语句:

vars <- dbListFields(db, "UNIVERSE")
ids <- dbGetQuery(db, "SELECT ID FROM LIST1"

dbGetQuery(db,
    paste("CREATE TABLE SUB1 (",
    paste(vars,collapse=" int,"),
    ")"
)   )

dbGetQuery(db,
    paste("INSERT INTO SUB1 (",
        paste(vars,collapse=","),
        ") SELECT * FROM UNIVERSE WHERE
        UNIVERSE.ID IN (",
        paste(t(ids),collapse=","),
        ")"
)   )


该代码运行(我可能在上面省略了括号),但是要花一些时间,因为我的表UNIVERSE的大小约为10个演出。主要问题是我将不得不对许多不同的表“ LIST#”运行此命令以使“ SUB#”和子集不脱节,因此当我完成操作后,我不能只是从UNIVERSE删除记录它。

我想知道我是否打算用错误的方式设置子集,或者是否还有其他方法可以加快这一过程?

谢谢您的帮助。

最佳答案

这是一个古老的问题,我不知道您是否找到了解决方案。如果UNIVERSE.ID是唯一的,非NULL的整数,则将其设置为“ INTEGER PRIMARY KEY”应该会大大加快速度。这里有一些代码和讨论:
http://www.mail-archive.com/r-sig-db%40stat.math.ethz.ch/msg00363.html

我不知道使用内部联接是否会加快速度;也许也值得一试。

关于sqlite - RSQLite大表的更快子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4504317/

相关文章:

c - 我无法让 Eclipse MinGW 和 Sqlite 一起使用 C 程序

mysql - SQLite 查找两个表之间的差异

android - 在 Android 库中创建 SQLite 数据库

r - 是否可以在R中读取.wma声音文件?

在 kableExtra 的第二列中使用 add_indent() 进行行缩进

r - 文件太大无法在 R 中打开?

python - 当数据通过 rpy2 传递时,lmtest/lrtest 抛出 data.frame 错误

SQLite 按日期排序和分组

r - 比较两个 data.frames 列表中的 colname?

ruby-on-rails - rails 3.1。 Heroku PGError : operator does not exist: character varying = integer 错误