Who is best with MySQL? R or Perl or Python: A benchmark
I really surprised to see R talks better with MySQL than Perl or Python!!!... I thought R might be slow in querying MySQL database. But I have a different answer here. Following is the code used for this demo.
R script:
0.372 0.039 25.729
R took 25.729 seconds to retrieve half million records.
Python script:
Perl script:
Perl took 26.9 seconds.
I am more happy to say that R is not slow rather it is much faster with MySQL
R script:
library(RMySQL)
test <- function(){
con <- dbConnect("MySQL", host="genome-mysql.cse.ucsc.edu", user ="genome", dbname = "hg18")
rs <- dbGetQuery(con, "select name, chromEnd from snp129 where chrom='chr1' and chromStart between 1 and 1e8;")
return(rs)
dbClearResult(rs)
dbDisconnect(con)
}
print(system.time(test()))
user system elapsed 0.372 0.039 25.729
R took 25.729 seconds to retrieve half million records.
Python script:
from time import time import MySQLdb start=time() def test(): Conn = MySQLdb.connect(host="genome-mysql.cse.ucsc.edu",user='genome',db="hg18") Cursor = Conn.cursor() SQL="select name, chromEnd from snp129 where chrom='chr1' and chromStart between 1 and 1e8;" Cursor.execute(SQL) rSQL = Cursor.fetchall() Conn.close() test() print time() - startWhereas, Python took 28.0789999962 seconds
Perl script:
use Benchmark;
use DBI;
my $count = 10;
timethis($count, \&withprepare);
sub withprepare{
my $dbh = DBI->connect ("DBI:mysql:hg18:genome-mysql.cse.ucsc.edu", 'genome') or die "Couldn't connect to database: ".DBI->errstr;
my $sth = $dbh->prepare('select name, chromEnd from snp129 where chrom="chr1" and chromStart between 1 and 1e8');
$sth->execute();
}
Perl took 26.9 seconds.
I am more happy to say that R is not slow rather it is much faster with MySQL
Comments