Przy stałych połączeniach:
- Nie można skutecznie zbudować przetwarzania transakcji
- niemożliwe sesje użytkownika na tym samym połączeniu
- aplikacje nie są skalowalne. Z czasem może być konieczne jego rozszerzenie i będzie to wymagało zarządzania/śledzenia trwałych połączeń
- jeśli skrypt, z jakiegokolwiek powodu, nie mógł zwolnić blokady na tabeli, to kolejne skrypty zostaną zablokowane na czas nieokreślony i należy zrestartować serwer db. Korzystając z transakcji, blok transakcji przejdzie również do następnego skryptu (używając tego samego połączenia), jeśli wykonanie skryptu zakończy się przed zakończeniem bloku transakcji itp.
Trwałe połączenia nie dają niczego, co można zrobić z nietrwałymi połączeniami.
W takim razie, po co ich w ogóle używać?
Jedynym możliwym powodem jest wydajność, aby używać ich, gdy jest to obciążenie związane z tworzeniem łącza do Twój serwer SQL jest wysoki. A to zależy od wielu czynników, takich jak:
- typ bazy danych
- czy serwer MySQl znajduje się na tym samym komputerze, a jeśli nie, jak daleko? może być poza siecią lokalną/domeną?
- jak bardzo przeciążony przez inne procesy maszyna, na której znajduje się MySQL
Zawsze można zastąpić trwałe połączenia połączeniami nietrwałymi. Może to zmienić wydajność skryptu, ale nie jego zachowanie!
Komercyjny RDMS może być licencjonowany na podstawie liczby jednoczesnych otwartych połączeń i tutaj trwałe połączenia mogą nie działać