Mysql
 sql >> база данни >  >> RDS >> Mysql

Пулиране на връзки срещу персистираща връзка mysqli

Всъщност термини обединяване на връзки ипостоянна връзка отнасят се до същото нещо в случай на mysqli в PHP.

Постоянна връзка в този случай се отнася до MySQL връзка, отворена от PHP скрипт, която остава отворена след като скриптът приключи изпълнението, за да се използва отново при някои по-късни изпълнения.

Пулиране на връзки означава, че има пул от постоянни връзки, поддържани от PHP. Една празна връзка от този пул се дава на PHP скрипт, който иска да се свърже с MySQL и се връща към пула, когато скриптът приключи.

Може да се чудите защо изобщо се нуждаем от пула от MySQL връзки, защо не използваме само една постоянна връзка за всички скриптове?

Има две причини за това:

  • PHP създава пул от MySQL връзки въз основа на host/port/username/password използван. Ако един скрипт иска да се свърже с MySQL с някакъв host/port/username/password комбинация, PHP търси неактивна постоянна връзка, която има същите стойности. Ако не бъде намерен, тогава се създава нова постоянна връзка с този host/port/username/password комбинация. Така че имаме нужда от поне толкова различни постоянни връзки, колкото има различни host/port/username/password стойности, използвани от всички скриптове.
  • Не можете да изпълнявате две SQL команди в една MySQL връзка едновременно. Това може да се случи, когато два PHP скрипта се изпълняват едновременно. Когато два скрипта искат да комуникират с MySQL едновременно, се създават две постоянни MySQL връзки. Броят на постоянните връзки в пула е равен на последния брой изпълнени максимални паралелни PHP скриптове или равен на горната граница, зададена в php.ini .

Важно забележка:

MySQL пулове за връзки (и всякакви други пулове за връзки) могат да съществуват само ако PHP се изпълнява като плъгин за уеб сървър . Пуловите не работят, когато работят в режим на бърз cgi или по друг начин, когато изпълнимият файл на PHP прекратява след изпълнение на скрипта.

Редактиране:Обединяването на MySQL връзки може да се използва в режим fast-cgi на PHP, ако уеб сървърът е конфигуриран да използва повторно един PHP fast-cgi процес за множество заявки. Ако PHP бързият cgi процес е конфигуриран да излиза след обслужване на една заявка, тогава всичките му MySQL връзки са затворени.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите размера на таблица в MySQL

  2. Пролетна партида с псевдоним на колона като ключ за сортиране - неправилно формиран оператор where

  3. обединяване на две SELECT заявки

  4. избиране на редове, които са се появили повече от три пъти

  5. Грешка в Android при предаване на идентификатора на избран елемент в изглед на списък с помощта на ContextMenu