将列表(从mysql数据库获取)转换为数据帧需要花费大量时间

时间:2018-11-02 06:22:19

标签: mysql r performance dataframe

我正在尝试从mysql数据库中获取数据帧。

my_db=src_mysql(dbname='****',
                host='****'
                ,port=****,user='****',password='****')

我要从此数据库(在全局环境中显示为2的列表)中提取表。

w = src_tbls(my_db)[1]

但是上面的命令返回了我一个列表。我实际上需要数据框。现在将此列表转换为数据帧需要花费很多时间。

谁能建议我一种直接从数据库中提取数据框并减少代码总执行时间的方法。

1 个答案:

答案 0 :(得分:0)

我对src_mysql()不熟悉,但是您可以尝试使用RODBC软件包。

这应该为您提供表的数据框,并且鉴于您的SQL语句并不慢,它可能会更快:

library(RODBC)
channel <- odbcConnect("your dsn as character string", 
                       uid="****", # Username         
                       pwd="****",     
                       believeNRows=FALSE)
w <- sqlQuery(channel, "SELECT * FROM YOUR_TABLE")