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

Pula połączeń a utrzymywanie połączenia mysqli

Właściwie terminy zestawianie połączeń i trwałe połączenie odnoszą się do tego samego w przypadku mysqli w PHP.

Stałe połączenie w tym przypadku odnosi się do połączenia MySQL otwartego ze skryptu PHP, który pozostaje otwarty po zakończeniu wykonywania skryptu, aby mógł zostać użyty ponownie w niektórych późniejszych wykonaniach.

Łączenie połączeń oznacza, że ​​istnieje pula trwałych połączeń utrzymywanych przez PHP. Jedno bezczynne połączenie z tej puli jest przekazywane skryptowi PHP, który chce połączyć się z MySQL i wraca do puli po zakończeniu działania skryptu.

Możesz się zastanawiać, po co nam w ogóle pula połączeń MySQL, dlaczego nie używamy tylko jednego stałego połączenia dla wszystkich skryptów?

Są ku temu dwa powody:

  • PHP tworzy pulę połączeń MySQL w oparciu o host/port/username/password używany. Jeśli jeden skrypt chce połączyć się z MySQL przy użyciu jakiegoś host/port/username/password połączenie, PHP szuka bezczynnego trwałego połączenia, które ma te same wartości. Jeśli nie zostanie znaleziony, zostanie utworzone nowe trwałe połączenie z tym host/port/username/password połączenie. Potrzebujemy więc co najmniej tylu różnych trwałych połączeń, ile jest różnych host/port/username/password wartości używane przez wszystkie skrypty.
  • Nie można jednocześnie wykonać dwóch poleceń SQL na jednym połączeniu MySQL. Może się to zdarzyć, gdy dwa skrypty PHP są wykonywane jednocześnie. Gdy dwa skrypty chcą jednocześnie komunikować się z MySQL, tworzone są dwa trwałe połączenia MySQL. Liczba trwałych połączeń w puli jest równa ostatniej liczbie maksymalnie wykonanych równoległych skryptów PHP lub jest równa górnemu limitowi ustawionemu w php.ini .

Ważna uwaga:

Pule połączeń MySQL (i dowolne inne pule połączeń) mogą istnieć tylko wtedy, gdy PHP działa jako wtyczka serwera WWW . Pule nie działają, gdy działają w trybie fast-cgi lub w jakikolwiek inny sposób, gdy plik wykonywalny PHP kończy działanie po wykonaniu skryptu.

Edycja:Pula połączeń MySQL może być używana w trybie fast-cgi PHP, jeśli serwer WWW jest skonfigurowany do ponownego użycia jednego procesu PHP fast-cgi dla wielu żądań. Jeśli proces PHP fast-cgi jest skonfigurowany do zamykania po obsłużeniu jednego żądania, wszystkie jego połączenia MySQL są zamykane.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kaskadowe pole kombi formularza dostępu nie pokazuje nic w rozwijanym menu

  2. Odświeżasz program Windows, gdy inni użytkownicy wprowadzają zmiany?

  3. Opencart 1.5.1.3 wyświetla cenę specjalną z datą rozpoczęcia i zakończenia na stronie wyświetlania produktu

  4. Nie można uruchomić serwera kolejowego

  5. Wystąpił błąd mySQL, nieznana kolumna, gdzie klauzula