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

Testování zátěže Golang RESTful API způsobuje příliš mnoho databázových připojení

Přejděte na database/sql nezabrání vám ve vytváření nekonečného počtu připojení k databázi. Pokud je ve fondu nečinné připojení, bude použito, jinak se vytvoří nové připojení.

Při zatížení tedy vaše obslužné rutiny požadavků sql.DB pravděpodobně nenacházejí žádná nečinná připojení, a tak se v případě potřeby vytvoří nové připojení. To znamená, že pokud je to možné, znovu použijeme nečinná připojení a v případě potřeby vytvoříme nová, čímž se nakonec dosáhne maximálního počtu připojení pro Db. A bohužel v Go 1.1 neexistuje pohodlný způsob (např. SetMaxOpenConns ), abyste omezili otevřená připojení.

Upgradujte na novější verzi Golang. V Go 1.2+ získáte SetMaxOpenConns . A prohlédněte si dokumentaci MySql pro zahájení nastavení a poté naladit.

db.SetMaxOpenConns(100) //tune this

Pokud musíte použít Go 1.1, musíte ve svém kódu zajistit, aby *sql.DB je používáno pouze N klienty najednou.



  1. SQL dotaz k nalezení počtu společných přátel podle tabulky osoba, přítel pár

  2. Vytvořte vypočítaný sloupec, který používá data z jiné tabulky na serveru SQL Server

  3. MariaDB FIELD() vs FIND_IN_SET():Jaký je rozdíl?

  4. Výjimka MySQL – při čtení dat došlo k závažné chybě