mysqli Екстензијата и Постојани врски
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
mysqli Екстензијата и Постојани врски
Референца за `mysqli.persistconns.php` со подобрена типографија и навигација.
mysqli Екстензијата и Постојани врски
The idea behind persistent connections is that a connection between a client process and a database can be reused by a client process, rather than being created and destroyed multiple times. This reduces the overhead of creating fresh connections every time one is required, as unused connections are cached and ready to be reused.
Идејата зад постојаните врски е дека врската помеѓу клиентски процес и база на податоци може да се користи повторно од клиентски процес, наместо да се создава и уништува повеќе пати. Ова го намалува трошокот за создавање нови врски секогаш кога е потребно, бидејќи неискористените врски се кешираат и подготвени за повторна употреба. p: За разлика од mysql екстензијата, mysqli не обезбедува посебна функција за отворање постојани врски. За да отворите постојана врска мора да претпоставите
на името на хостот при поврзување.
Проблемот со постојаните врски е што тие можат да бидат оставени во непредвидливи состојби од клиентите. На пример, заклучување на табела може да биде активирано пред клиент неочекувано да се прекине. Нов клиент процес што ја користи оваа постојана врска ќе ја добие врската
каква што е
. Секое чистење ќе треба да биде направено од новиот клиент процес пред да може добро да ја искористи постојаната врска, зголемувајќи го товарот на програмерот. mysqli постојаната врска на mysqli екстензијата, сепак, обезбедува вграден код за ракување со чистење. Чистењето извршено од
-
вклучува:
-
Враќање на активни трансакции
-
Затворање и бришење на привремени табели
-
Отклучување на табели
-
Ресетирање на променливи на сесијата
-
Затворање на подготвени изјави (секогаш се случува со PHP)
-
Затворање на рачка GET_LOCK()
Ослободување на заклучувања стекнати со
На mysqli Ова осигурува дека постојаните врски се во чиста состојба при враќање од пул за врски, пред клиентскиот процес да ги користи.
mysql_change_user().
екстензијата го прави ова чистење со автоматско повикување на функцијата C-API potentially Функцијата за автоматско чистење има предности и недостатоци. Предноста е што програмерот повеќе не треба да се грижи за додавање код за чистење, бидејќи тој се повикува автоматски. Сепак, недостатокот е што кодот може
Можно е да се исклучи автоматското чистење на кодот, со компајлирање на PHP со
MYSQLI_NO_CHANGE_USER_ON_PCONNECT
defined.
Забелешка:
На
mysqliекстензијата поддржува постојани конекции кога се користи или MySQL Native Driver или MySQL Client Library.