Intel Xeon CPU 3.20GHz, 4 GB RAM
Linux 64 Bit
MySQL 5.5.27
Current Go-MySQL-Driver and mymysql versions as of March 19, 2013
Java7 (JDBC) + MySQL Connector/J 5.1.24 for comparison
Results for go 1.0.3, Java run 1 and 2
Benchmark
Go-MySQL-Driver
mymysql godrv
Java (JDBC) + MySQL Connector/J 5.1.24
SimpleQuery
2037 queries/second
1631 queries/second
3323 queries/second
PreparedQuery
2928 queries/second
2246 queries/second
5195 queries/second
AutoQueryRow
3645 queries/second
3323 queries/second
-
SimpleQueryRow
3835 queries/second
3401 queries/second
11071 queries/second
PreparedQueryRow
8803 queries/second
8045 queries/second
11453 queries/second
SimpleExec
10027 queries/second
9474 queries/second
11455 queries/second
PreparedExec
10278 queries/second
9831 queries/second
11832 queries/second
Results for go tip, Java run 3 and 4
Benchmark
Go-MySQL-Driver
mymysql godrv
Java (JDBC) + MySQL Connector/J 5.1.24
SimpleQuery
3743 queries/second
2683 queries/second
3301 queries/second
PreparedQuery
4101 queries/second
3018 queries/second
5198 queries/second
AutoQueryRow
4372 queries/second
9678 * queries/second
-
SimpleQueryRow
11217 queries/second
9738 queries/second
11086 queries/second
PreparedQueryRow
9849 queries/second
8784 queries/second
11391 queries/second
SimpleExec
12907 queries/second
12410 queries/second
11429 queries/second
PreparedExec
13222 queries/second
12696 queries/second
11748 queries/second
* AutoQueryRow
: mymysql builds a single query string instead of using prepared statements
$ go version
go version go1.0.3
*************************************************************
BENCHMARKING Go-MySQL-Driver [run 1]
*************************************************************
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 4.90898s [ 2037 queries/second ]
PreparedQuery: 3.415631s [ 2928 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
AutoQueryRow: 25.992804s [ 3847 queries/second ]
SimpleQueryRow: 26.018075s [ 3843 queries/second ]
PreparedQueryRow: 11.359661s [ 8803 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 9.937693s [ 10063 queries/second ]
PreparedExec: 9.673266s [ 10338 queries/second ]
*************************************************************
BENCHMARKING mymysql godrv [run 1]
*************************************************************
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 6.090524s [ 1642 queries/second ]
PreparedQuery: 4.447945s [ 2248 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
AutoQueryRow: 30.092542s [ 3323 queries/second ]
SimpleQueryRow: 29.399428s [ 3401 queries/second ]
PreparedQueryRow: 12.43072s [ 8045 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 10.555367s [ 9474 queries/second ]
PreparedExec: 10.172413s [ 9831 queries/second ]
*************************************************************
BENCHMARKING Go-MySQL-Driver [run 2]
*************************************************************
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 4.721605s [ 2118 queries/second ]
PreparedQuery: 3.251801s [ 3075 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
AutoQueryRow: 27.436285s [ 3645 queries/second ]
SimpleQueryRow: 26.077592s [ 3835 queries/second ]
PreparedQueryRow: 11.229181s [ 8905 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 9.97262s [ 10027 queries/second ]
PreparedExec: 9.729652s [ 10278 queries/second ]
*************************************************************
BENCHMARKING mymysql godrv [run 2]
*************************************************************
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 6.130481s [ 1631 queries/second ]
PreparedQuery: 4.451507s [ 2246 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
AutoQueryRow: 28.611437s [ 3495 queries/second ]
SimpleQueryRow: 28.730313s [ 3481 queries/second ]
PreparedQueryRow: 12.427371s [ 8047 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 10.319815s [ 9690 queries/second ]
PreparedExec: 10.147441s [ 9855 queries/second ]
$ go version
go version devel +786e094255c9 Tue Mar 19 07:08:26 2013 +0100 linux/amd64
*************************************************************
BENCHMARKING Go-MySQL-Driver [run 1]
*************************************************************
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 2.660608864s [ 3759 queries/second ]
PreparedQuery: 2.416900888s [ 4138 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
AutoQueryRow: 22.660756965s [ 4413 queries/second ]
SimpleQueryRow: 8.815792086s [ 11343 queries/second ]
PreparedQueryRow: 10.028589997s [ 9971 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 7.676686034s [ 13026 queries/second ]
PreparedExec: 7.508063974s [ 13319 queries/second ]
*************************************************************
BENCHMARKING mymysql godrv [run 1]
*************************************************************
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 3.724476606s [ 2685 queries/second ]
PreparedQuery: 3.301542098s [ 3029 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
AutoQueryRow: 10.320880617s [ 9689 queries/second ]
SimpleQueryRow: 10.252676766s [ 9754 queries/second ]
PreparedQueryRow: 11.309210151s [ 8842 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 8.017343577s [ 12473 queries/second ]
PreparedExec: 7.853554703s [ 12733 queries/second ]
*************************************************************
BENCHMARKING Go-MySQL-Driver [run 2]
*************************************************************
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 2.671647612s [ 3743 queries/second ]
PreparedQuery: 2.43836213s [ 4101 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
AutoQueryRow: 22.872479121s [ 4372 queries/second ]
SimpleQueryRow: 8.914766029s [ 11217 queries/second ]
PreparedQueryRow: 10.153325208s [ 9849 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 7.747658594s [ 12907 queries/second ]
PreparedExec: 7.563278955s [ 13222 queries/second ]
*************************************************************
BENCHMARKING mymysql godrv [run 2]
*************************************************************
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 3.726763041s [ 2683 queries/second ]
PreparedQuery: 3.312916071s [ 3018 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
AutoQueryRow: 10.33306149s [ 9678 queries/second ]
SimpleQueryRow: 10.269378078s [ 9738 queries/second ]
PreparedQueryRow: 11.38467273s [ 8784 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 8.058210282s [ 12410 queries/second ]
PreparedExec: 7.876202872s [ 12696 queries/second ]
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b06)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 3.009s [ 3323 queries/second ]
PreparedQuery: 1.921s [ 5206 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
SimpleQueryRow: 9.033s [ 11071 queries/second ]
PreparedQueryRow: 8.731s [ 11453 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 8.66s [ 11547 queries/second ]
PreparedExec: 8.452s [ 11832 queries/second ]
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 3.004s [ 3329 queries/second ]
PreparedQuery: 1.925s [ 5195 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
SimpleQueryRow: 9.001s [ 11110 queries/second ]
PreparedQueryRow: 8.729s [ 11456 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 8.73s [ 11455 queries/second ]
PreparedExec: 8.427s [ 11867 queries/second ]
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 3.029s [ 3301 queries/second ]
PreparedQuery: 1.921s [ 5206 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
SimpleQueryRow: 9.005s [ 11105 queries/second ]
PreparedQueryRow: 8.731s [ 11453 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 8.744s [ 11436 queries/second ]
PreparedExec: 8.475s [ 11799 queries/second ]
-------------------------------------------------------------
[10000 * Query 100 Rows]
-------------------------------------------------------------
SimpleQuery: 3.016s [ 3316 queries/second ]
PreparedQuery: 1.924s [ 5198 queries/second ]
-------------------------------------------------------------
[100 * QueryRow] * 1000
-------------------------------------------------------------
SimpleQueryRow: 9.02s [ 11086 queries/second ]
PreparedQueryRow: 8.779s [ 11391 queries/second ]
-------------------------------------------------------------
[100000 * Exec]
-------------------------------------------------------------
SimpleExec: 8.75s [ 11429 queries/second ]
PreparedExec: 8.512s [ 11748 queries/second ]