File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -113,6 +113,47 @@ func benchmarkQueryHelper(b *testing.B, compr bool) {
113
113
}
114
114
}
115
115
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
+
116
157
func BenchmarkExec (b * testing.B ) {
117
158
tb := (* TB )(b )
118
159
b .StopTimer ()
You can’t perform that action at this time.
0 commit comments