Всъщност термини обединяване на връзки ипостоянна връзка отнасят се до същото нещо в случай на 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 връзки са затворени.