|
@@ -4,6 +4,7 @@ import (
|
|
|
"database/sql"
|
|
|
"encoding/json"
|
|
|
"flag"
|
|
|
+ "fmt"
|
|
|
"html/template"
|
|
|
"log"
|
|
|
"math/rand"
|
|
@@ -41,7 +42,7 @@ const (
|
|
|
// It reduces round trips without prepared statement.
|
|
|
//
|
|
|
// We can see difference between prepared statement and interpolation by comparing go-raw and go-raw-interpolate
|
|
|
- connectionString = "benchmarkdbuser:benchmarkdbpass@tcp(localhost:3306)/hello_world?interpolateParams=true"
|
|
|
+ connectionString = "benchmarkdbuser:benchmarkdbpass@tcp(%s:3306)/hello_world?interpolateParams=true"
|
|
|
worldSelect = "SELECT id, randomNumber FROM World WHERE id = ?"
|
|
|
worldUpdate = "UPDATE World SET randomNumber = ? WHERE id = ?"
|
|
|
fortuneSelect = "SELECT id, message FROM Fortune"
|
|
@@ -67,7 +68,11 @@ var child = flag.Bool("child", false, "is child proc")
|
|
|
|
|
|
func initDB() {
|
|
|
var err error
|
|
|
- db, err = sql.Open("mysql", connectionString)
|
|
|
+ var dbhost = os.Getenv("DBHOST")
|
|
|
+ if dbhost == "" {
|
|
|
+ dbhost = "localhost"
|
|
|
+ }
|
|
|
+ db, err = sql.Open("mysql", fmt.Sprintf(connectionString, dbhost))
|
|
|
if err != nil {
|
|
|
log.Fatalf("Error opening database: %v", err)
|
|
|
}
|