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.