sql >> Databasteknik >  >> RDS >> Mysql

MySql-processlista fylld med sömnposter som leder till för många anslutningar?

I princip får du anslutningar i viloläge när:

  • ett PHP-skript ansluter till MySQL
  • vissa frågor körs
  • sedan gör PHP-skriptet en del saker som tar tid
    • utan att koppla från DB
  • och till sist slutar PHP-skriptet
    • vilket betyder att den kopplar från MySQL-servern

Så du slutar vanligtvis med många processer i viloläge när du har många PHP-processer som förblir uppkopplade, utan att egentligen göra något på databassidan.

En grundläggande idé, så :se till att du inte har PHP-processer som körs för länge -- eller tvinga dem att koppla från så snart de inte behöver komma åt databasen längre.


En annan sak, som jag ofta ser när det är lite belastning på servern :

  • Det kommer fler och fler förfrågningar till Apache
    • vilket innebär många sidor att generera
  • Varje PHP-skript, för att skapa en sida, ansluter till DB och gör några frågor
  • Dessa frågor tar mer och mer tid, eftersom belastningen på DB-servern ökar
  • Vilket innebär att fler processer fortsätter att staplas upp

En lösning som kan hjälpa är att minska tiden dina frågor tar – optimera de längsta.



  1. Hur sammanfogar man datatyper som heltal (heltal med heltal) &varchar (varchar med varchar) i mysql?

  2. Hur man beviljar åtkomst till v$-visningar (v$session ,v$instance)

  3. Ersätta MySQL:s UUID version 1-funktion?

  4. Lås Oracle-databasen innan du kör skripten Delete/Load data