| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package mysql
- import (
- "database/sql"
- "strings"
- "testing"
- )
- var (
- // dsn from driver_test.go
- sample = []byte(strings.Repeat("0123456789abcdef", 1024*1024))
- min, max = 16, len(sample)
- )
- func BenchmarkRoundtripText(b *testing.B) {
- db, err := sql.Open("mysql", dsn)
- if err != nil {
- b.Fatalf("crashed")
- }
- defer db.Close()
- var result string
- for i := 0; i < b.N; i++ {
- length := min + i
- if length > max {
- length = max
- }
- test := string(sample[0:length])
- rows, err := db.Query("SELECT \"" + test + "\"")
- if err != nil {
- b.Fatalf("crashed")
- }
- if !rows.Next() {
- rows.Close()
- b.Fatalf("crashed")
- }
- err = rows.Scan(&result)
- if err != nil {
- rows.Close()
- b.Fatalf("crashed")
- }
- if result != test {
- rows.Close()
- b.Errorf("mismatch")
- }
- rows.Close()
- }
- }
- func BenchmarkRoundtripPrepared(b *testing.B) {
- db, err := sql.Open("mysql", dsn)
- if err != nil {
- b.Fatalf("crashed")
- }
- defer db.Close()
- var result string
- stmt, err := db.Prepare("SELECT ?")
- if err != nil {
- b.Fatalf("crashed")
- }
- for i := 0; i < b.N; i++ {
- length := min + i
- if length > max {
- length = max
- }
- test := string(sample[0:length])
- rows, err := stmt.Query(test)
- if err != nil {
- b.Fatalf("crashed")
- }
- if !rows.Next() {
- rows.Close()
- b.Fatalf("crashed")
- }
- err = rows.Scan(&result)
- if err != nil {
- rows.Close()
- b.Fatalf("crashed")
- }
- if result != test {
- rows.Close()
- b.Errorf("mismatch")
- }
- rows.Close()
- }
- }
|