Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Lista procesów MySql wypełniona wpisami uśpienia prowadzącymi do zbyt wielu połączeń?

Zasadniczo uzyskujesz połączenia w stanie uśpienia, gdy:

  • skrypt PHP łączy się z MySQL
  • niektóre zapytania są wykonywane
  • wtedy skrypt PHP robi kilka rzeczy, które wymagają czasu
    • bez odłączania od bazy danych
  • i wreszcie skrypt PHP się kończy
    • co oznacza, że ​​rozłącza się z serwerem MySQL

Tak więc zazwyczaj kończysz z wieloma procesami w stanie uśpienia, gdy masz wiele procesów PHP, które pozostają połączone, bez robienia czegokolwiek po stronie bazy danych.

Podstawowa idea, więc:upewnij się, że nie masz procesów PHP, które działają zbyt długo - lub zmuś je do rozłączenia, gdy tylko nie będą już potrzebować dostępu do bazy danych.


Kolejna rzecz, którą często widzę, gdy serwer jest obciążony :

  • W Apache pojawia się coraz więcej próśb
    • co oznacza wiele stron do wygenerowania
  • Każdy skrypt PHP, w celu wygenerowania strony, łączy się z bazą danych i wykonuje kilka zapytań
  • Te zapytania zajmują coraz więcej czasu w miarę wzrostu obciążenia serwera DB
  • Co oznacza, że ​​coraz więcej procesów jest nakładanych

Rozwiązaniem, które może pomóc, jest skrócenie czasu wykonywania zapytań – optymalizacja najdłuższych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie / daty MYSQL starsze niż 1 tydzień temu (wszystkie daty i godziny w UTC)

  2. Identyfikatory MySQL Select, które występują w różnych wierszach z wieloma określonymi wartościami dla kolumny

  3. jak sprawdzić, czy niestandardowa tabela wordpress jest pusta, czy nie?

  4. jak używać polubienia z sprzężeniem w sql?

  5. Klauzula MySQL IN:maksymalna liczba argumentów