Skip to content

Commit 5f6a958

Browse files
committed
adding benchmark query with lots of rows
1 parent 7da50ff commit 5f6a958

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

benchmark_test.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,47 @@ func benchmarkQueryHelper(b *testing.B, compr bool) {
113113
}
114114
}
115115

116+
func BenchmarkSelect10000rows(b *testing.B) {
117+
db := initDB(b, false)
118+
defer db.Close()
119+
120+
// Check if we're using MariaDB
121+
var version string
122+
err := db.QueryRow("SELECT @@version").Scan(&version)
123+
if err != nil {
124+
b.Fatalf("Failed to get server version: %v", err)
125+
}
126+
127+
if !strings.Contains(strings.ToLower(version), "mariadb") {
128+
b.Skip("Skipping benchmark as it requires MariaDB sequence table")
129+
return
130+
}
131+
132+
b.StartTimer()
133+
stmt, err := db.Prepare("SELECT * FROM seq_1_to_10000")
134+
if err != nil {
135+
b.Fatalf("Failed to prepare statement: %v", err)
136+
}
137+
defer stmt.Close()
138+
for n := 0; n < b.N; n++ {
139+
rows, err := stmt.Query()
140+
if err != nil {
141+
b.Fatalf("Failed to query 10000rows: %v", err)
142+
}
143+
144+
var id int64
145+
for rows.Next() {
146+
err = rows.Scan(&id)
147+
if err != nil {
148+
rows.Close()
149+
b.Fatalf("Failed to scan row: %v", err)
150+
}
151+
}
152+
rows.Close()
153+
}
154+
b.StopTimer()
155+
}
156+
116157
func BenchmarkExec(b *testing.B) {
117158
tb := (*TB)(b)
118159
b.StopTimer()

0 commit comments

Comments
 (0)