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

MySql Processlist plný záznamů spánku vedoucích k příliš mnoha připojením?

V zásadě získáte připojení ve stavu spánku, když:

  • Skript PHP se připojuje k MySQL
  • některé dotazy jsou provedeny
  • Pak skript PHP provede některé věci, které zaberou čas
    • bez odpojení od DB
  • a nakonec skript PHP končí
    • což znamená, že se odpojí od serveru MySQL

Obecně tedy skončíte s mnoha procesy ve stavu spánku, když máte mnoho procesů PHP, které zůstávají připojeny, aniž by ve skutečnosti dělaly cokoli na straně databáze.

Základní myšlenka, takže:ujistěte se, že nemáte procesy PHP, které běží příliš dlouho - nebo je přinuťte, aby se odpojily, jakmile již nebudou potřebovat přístup k databázi.


Další věc, kterou často vidím, když je na serveru nějaká zátěž:

  • Na Apache přichází stále více požadavků
    • což znamená vygenerovat mnoho stránek
  • Každý PHP skript se za účelem generování stránky připojí k databázi a provede nějaké dotazy
  • Tyto dotazy zabírají stále více času, jak se zvyšuje zatížení serveru DB
  • To znamená, že se stále hromadí více procesů

Řešením, které může pomoci, je zkrátit čas, který vaše dotazy zaberou – optimalizace těch nejdelších.



  1. Jak provádět průběžné upgrady pro MySQL

  2. 4 tipy pro spuštění diagnostiky serveru SQL

  3. Jak mohu opravit chybu MySQL # 1064?

  4. Jak vytvořit databázi MySQL pomocí rozhraní příkazového řádku (CLI)