sql >> Databáze >  >> RDS >> Mysql

Golang, mysql:Chyba 1040:Příliš mnoho připojení

sql.Open ve skutečnosti neotevře připojení k vaší databázi.

Sql.DB udržuje fond připojení k vaší databázi. Pokaždé, když zadáte dotaz na databázi, váš program se pokusí získat připojení z tohoto fondu nebo jinak vytvoří nové. Tato připojení se poté vrátí zpět do fondu, jakmile je zavřete.

To je to, co rows.Close() does.Your db.QueryRow("...") dělá totéž interně, když voláte Scan(...) .

Základní problém je, že vytváříte příliš mnoho dotazů, z nichž každý potřebuje připojení, ale neuzavíráte svá připojení dostatečně rychle. Tímto způsobem musí váš program vytvořit nové připojení pro každý dotaz.

Maximální počet připojení, která váš program používá, můžete omezit voláním SetMaxOpenConns na vašem sql.DB.

Viz http://go-database-sql.org/surprises.html pro více informací.



  1. Úvod do statistiky čekání

  2. Jak načtu soubor sql.gz do své databáze? (import)

  3. Říjen 2014CPU havaruje ArcGIS Desktop

  4. Sekce konfiguračního souboru Mysql