@@ -43,9 +43,13 @@ func (tb *TB) checkStmt(stmt *sql.Stmt, err error) *sql.Stmt {
4343 return stmt
4444}
4545
46- func initDB (b * testing.B , queries ... string ) * sql.DB {
46+ func initDB (b * testing.B , useCompression bool , queries ... string ) * sql.DB {
4747 tb := (* TB )(b )
48- db := tb .checkDB (sql .Open ("mysql" , dsn ))
48+ comprStr := ""
49+ if useCompression {
50+ comprStr = "&compress=1"
51+ }
52+ db := tb .checkDB (sql .Open ("mysql" , dsn + comprStr ))
4953 for _ , query := range queries {
5054 if _ , err := db .Exec (query ); err != nil {
5155 if w , ok := err .(MySQLWarnings ); ok {
@@ -61,10 +65,19 @@ func initDB(b *testing.B, queries ...string) *sql.DB {
6165const concurrencyLevel = 10
6266
6367func BenchmarkQuery (b * testing.B ) {
68+ benchmarkQueryHelper (b , false )
69+ }
70+
71+ func BenchmarkQueryCompression (b * testing.B ) {
72+ benchmarkQueryHelper (b , true )
73+ }
74+
75+ func benchmarkQueryHelper (b * testing.B , compr bool ) {
76+
6477 tb := (* TB )(b )
6578 b .StopTimer ()
6679 b .ReportAllocs ()
67- db := initDB (b ,
80+ db := initDB (b , compr ,
6881 "DROP TABLE IF EXISTS foo" ,
6982 "CREATE TABLE foo (id INT PRIMARY KEY, val CHAR(50))" ,
7083 `INSERT INTO foo VALUES (1, "one")` ,
0 commit comments