我看到了300倍的性能损失,这取决于我使用的驱动程序,而快速的驱动程序在shinyapps.io上不可用。
我正在使用readr::read_csv
将CSV读入tibble,然后使用dbWriteTable()
将其上传到我的MariaDB数据库。如果我使用odbc::odbc()
和最新的MariaDB连接器,加载6000条记录需要1-2秒,这很棒。但是,该连接器在www.example.com上不可用shinyapps.io,而我的应用程序将在www.example.com上部署。可用的MariaDB驱动程序有1)odbc,带有MySQL连接器,或2)RMariaDB驱动程序。当我使用这两种驱动程序中的任何一种(在本地或在shinyapps上运行)时,同样的负载需要8-10 * 分钟 *!
有没有更快的方法?我的Shiny应用程序允许用户选择上传CSV文件,最大的可以上传10- 15 k行。RMariaDB软件包维护者建议在连接到数据库时使用load_data_local_infile = TRUE,但我的主机提供商禁用了该功能。:(
任何建议都将不胜感激!马特
1条答案
按热度按时间soat7uwm1#
我使用
odbc()
驱动程序和MySQL连接器从dbWriteTable()
切换到DBI::sqlAppendTable
,速度很快(1秒6000行)。