Hi All,

I'm using go-sql-driver/mysql in my web-application. Each API call has 
about 3-4 queries it performs. Which are all insert or fetch single row 
queries like:

_, err := db.Exec(query, parms)

    if err != nil {
        log.Fatal(err)
        
    }

err := db.QueryRow(query, params).Scan(&data)
if err != nil {
        log.Fatal(err)
        
    }

I have also the following configuration
db.SetMaxOpenConns(50)
db.SetMaxIdleConns(20)

I am making a call to 2 api's which have a combined db call of 8 queires. 
 When I make a call with 120 concurrent users with a ramp up time of 5 sec 
i get Error 1040: Too many connections.

it works fine for up to 90-100 users. My question is why does the db not 
re-using the connections or why does it not release the connections soon 
enough?

As both Exec and QueryRow are supposed to release connections immediately 
since I use Scan soon after, shouldn't the number of connections it support 
be more in number than just double?

Any insight is appreciated.





-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to