SQL学习笔记:分块提取查询结果

实践中,数据库中可能有数十亿条记录。查询结果有可能达到千万条。如果用dbGetQuery( ) 一次性取出所有查询结果,内存可能吃不消。但是,如果容许分块处理数据来完成任务,那么下述方法不失为一个好的选择。

library(DBI)
library(RSQLite)
con <- dbConnect(SQLite(), "example1.sqlite")
res <- dbSendQuery(con,
                   "select carat, cut, color, price from diamonds
where cut = 'Ideal' and color = 'E' ")
while(!dbHasCompleted(res)){
  chunk <- dbFetch(res, 800)
  cat(nrow(chunk), "records fetched\n")
}
dbClearResult(res)
dbDisconnect(con)
posted @ 2018-01-23 14:00  嘻呵呵  阅读(1019)  评论(0编辑  收藏  举报