@@ -43,9 +43,13 @@ func (tb *TB) checkStmt(stmt *sql.Stmt, err error) *sql.Stmt {
43
43
return stmt
44
44
}
45
45
46
- func initDB (b * testing.B , queries ... string ) * sql.DB {
46
+ func initDB (b * testing.B , useCompression bool , queries ... string ) * sql.DB {
47
47
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 ))
49
53
for _ , query := range queries {
50
54
if _ , err := db .Exec (query ); err != nil {
51
55
if w , ok := err .(MySQLWarnings ); ok {
@@ -61,10 +65,19 @@ func initDB(b *testing.B, queries ...string) *sql.DB {
61
65
const concurrencyLevel = 10
62
66
63
67
func 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
+
64
77
tb := (* TB )(b )
65
78
b .StopTimer ()
66
79
b .ReportAllocs ()
67
- db := initDB (b ,
80
+ db := initDB (b , compr ,
68
81
"DROP TABLE IF EXISTS foo" ,
69
82
"CREATE TABLE foo (id INT PRIMARY KEY, val CHAR(50))" ,
70
83
`INSERT INTO foo VALUES (1, "one")` ,
0 commit comments