Mysql
 sql >> база данни >  >> RDS >> Mysql

Golang, mysql:Грешка 1040:Твърде много връзки

sql.Open всъщност не отваря връзка с вашата база данни.

sql.DB поддържа пул от връзки към вашата база данни. Всеки път, когато заявите вашата база данни, вашата програма ще се опита да получи връзка от този пул или ще създаде нова в противен случай. Тези връзки се връщат обратно в пула, след като ги затворите.

Това е, което rows.Close() прави.Вашият db.QueryRow("...") прави същото вътрешно, когато извикате Scan(...) .

Основният проблем е, че създавате твърде много заявки, всяка от които се нуждае от връзка, но не затваряте връзките си достатъчно бързо. По този начин вашата програма трябва да създаде нова връзка за всяка заявка.

Можете да ограничите максималния брой връзки, които вашата програма използва, като извикате SetMaxOpenConns във вашата sql.DB.

Вижте http://go-database-sql.org/surprises.html за повече информация.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разбиране на MySQL key_len в Explain Statement

  2. Как работи функцията MAKE_SET() в MySQL

  3. Как да изпращам данни от android към mysql сървър?

  4. Намаляване на потреблението на памет на mysql на [имейл защитен] микро екземпляр

  5. SQL - Премахване на скоби от телефонния номер