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

PHP mysql_connect ustawiony wait_timeout

Nie jest dobrze trzymać się połączeń DB przez długi czas, ponieważ DB zapewnia tylko stałą liczbę połączeń w tym samym czasie; jeśli używasz jednego przez wieki, oznacza to, że twoja baza danych ma mniejszą zdolność do obsługi innych żądań, nawet jeśli w rzeczywistości nic nie robisz z tym połączeniem.

Sugeruję zerwanie połączenia, jeśli program na jakiś czas zakończy korzystanie z niego, i ponowne połączenie, gdy nadejdzie czas, aby wykonać więcej pracy z bazą danych.

Dodatkowo rozwiązanie to ochroni Twój program przed ewentualnym przestojem bazy danych, np. jeśli będziesz musiał zrestartować serwer DB (zdarza się to nawet w najlepiej obsługiwanej sieci). Jeśli utrzymasz połączenie aktywne (tj. ping bazy danych, jak w innych odpowiedziach), to takie zdarzenie pozostawi cię z dokładnie tym samym problemem, który masz teraz. Dzięki właściwie zarządzanemu połączeniu, które jest przerywane, gdy nie jest potrzebne, możesz bezpiecznie pozostawić swojego demona uruchomionego, nawet jeśli zaplanowałeś przestój swojej bazy danych; tak długo, jak długo pozostaje bezczynny, nie musi być mądrzejszy.

(na marginesie, chciałbym również zakwestionować mądrość pisania programu PHP, który działa w sposób ciągły; PHP jest przeznaczony do krótkotrwałego działania w sieci. Może być zdolny do uruchamiania długoterminowych programów demonów, ale są lepsze narzędzia do tego zadania)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zweryfikuj logowanie za pomocą hasła Bcrypt

  2. Wygenerować unikalną nazwę użytkownika z imienia i nazwiska?

  3. Wstaw pole identyfikatora wygenerowane przez wyzwalacz, ale nie przekazane dalej

  4. Nie można połączyć się z bazą danych po pewnym czasie wdrożenia na serwerze

  5. Mysql - Jak sprawdzić poziom izolacji dla transakcji