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) {
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+
116157func BenchmarkExec (b * testing.B ) {
117158 tb := (* TB )(b )
118159 b .StopTimer ()
You can’t perform that action at this time.
0 commit comments