Truy cập database/sql
không ngăn cản bạn tạo vô số kết nối đến cơ sở dữ liệu. Nếu có một kết nối không hoạt động trong nhóm, nó sẽ được sử dụng, nếu không, một kết nối mới sẽ được tạo.
Vì vậy, khi tải, trình xử lý yêu cầu sql.DB của bạn có thể không tìm thấy kết nối rỗi và do đó một kết nối mới được tạo khi cần thiết. Điều này khuấy động các kết nối nhàn rỗi sử dụng bit khi có thể và tạo mới khi cần thiết-, cuối cùng đạt được kết nối tối đa cho Db. Và, thật không may, trong Go 1.1 không có cách nào thuận tiện (ví dụ: SetMaxOpenConns ) để hạn chế các kết nối đang mở.
Nâng cấp lên phiên bản Golang mới hơn. Trong Chuyển sang 1.2+ bạn nhận được SetMaxOpenConns . Và xem tài liệu MySql để bắt đầu cài đặt và sau đó điều chỉnh.
db.SetMaxOpenConns(100) //tune this
Nếu bạn phải sử dụng Go 1.1, bạn sẽ cần đảm bảo trong mã của mình rằng *sql.DB
chỉ được sử dụng bởi N khách hàng tại một thời điểm.