Trvalá připojení by pro MySQL měla být zbytečná. V jiných databázích (jako je Oracle) je vytvoření připojení drahé a časově náročné, takže pokud můžete připojení znovu použít, je to velká výhra. Tyto značky databází však nabízejí sdružování připojení, které problém řeší lepším způsobem.
Vytvoření připojení k databázi MySQL je ve srovnání s jinými značkami rychlé, takže používání trvalých připojení přináší pro MySQL úměrně menší výhody než pro jinou značku databáze.
Trvalá připojení mají také nevýhodu. Databázový server přiděluje prostředky každému připojení bez ohledu na to, zda jsou připojení potřebná nebo ne. Pokud jsou připojení nečinná, vidíte spoustu promarněných zdrojů bez účelu. Nevím, jestli dosáhnete 10 000 nečinných připojení, ale i pár stovek je drahých.
Připojení mají stav a bylo by nevhodné, aby požadavek PHP „zdědil“ informace z relace dříve používané jiným požadavkem PHP. Například dočasné tabulky a uživatelské proměnné jsou normálně vyčištěny při uzavření připojení, ale ne, pokud používáte trvalá připojení. Podobně nastavení založená na relaci, jako je znaková sada a řazení. Také LAST_INSERT_ID()
by nahlásilo ID naposledy vygenerované během relace – i když to bylo během předchozího požadavku PHP.
Přinejmenším pro MySQL nevýhoda trvalých připojení pravděpodobně převažuje nad jejich výhodami. A existují další, lepší techniky k dosažení vysoké škálovatelnosti.
Aktualizace z března 2014:
Rychlost připojení MySQL byla vždy nízká ve srovnání s jinými značkami RDBMS, ale stále se zlepšuje.
Viz http://mysqlserverteam.com/improving-connectdisconnect-performance/
Přečtěte si blog pro další podrobnosti a srovnání rychlosti.