2009-07-23 86 views
6

据我所知,一些数据库在R(如MySQL的)的原生支持,但你可以连接到使用其他RODBC像DB的MS SQL服务器。与本地驱动程序相比RODBC读取/写入的速度提高多少?还有哪些数据库在R中有本地驱动程序?阅读速度比写作速度还是慢一些?本土VS ODBC数据库连接

回答

1
  • 这是一个经验问题,那么为什么不测量它对你感兴趣的组合呢?
  • 公共代码不被隐藏的,所以你为什么不指望什么其他DB接口CRAN了?对于单独的DBI,我们有SQLite,MySQL,Postgresql,Oracle;对于自定义数据库后端,有像Vhayu这样的东西。
  • 专门论坛的存在,所以你为什么不问在R-SIG-DB?
  • 最后,只要有一个API和需要人们倾向于结合这两者。我已经写了两个不同的(在工作,因此未发行)包到两个高度专业化和快速的后端。
+0

好点的经验问题,但我无法测试他们所有。如果其他人有切换数据库引擎的经验和证据,我会切换。 – 2009-07-23 19:21:56

+0

您可以选择将本机与ODBC进行比较(比如说,使用MySQL或PostgreSQL;而不是MS SQL,只能使用ODBC)。因此,模拟你之后的测试用例的类型并查看它的行为。 – 2009-07-23 19:35:36

2

如果您对SQL Server特别感兴趣,下面的引用有点过时,但我想它可能仍然成立。

Using ODBC with Microsoft SQL Server

ODBC的性能作为原生API

一个有关ODBC的传言之一是,它本质上是比原来的DBMS API慢。这个推理是基于这样的假设:必须将ODBC驱动程序作为本地DBMS API的额外层实现,将来自应用程序的ODBC语句转换为本地DBMS API函数和SQL语法。与直接向本地API调用应用程序相比,此翻译工作增加了额外处理。对于通过本地DBMS API实现的某些ODBC驱动程序,这种假设是正确的,但Microsoft SQL Server ODBC驱动程序不是以这种方式实现的。

微软SQL Server ODBC驱动程序是一个功能替代的DB-Library的。 SQL Server ODBC驱动程序与底层网络库的工作方式与DB-Library DLL完全相同。 Microsoft SQL Server ODBC驱动程序不依赖DB-Library DLL,如果DB-Library甚至不存在于客户端上,则驱动程序将正常运行。

微软的测试已经表明,基于ODBC和基于数据库的库SQL Server应用程序的性能基本相当。

相关问题