Da PHP je eine Scriptsprache ist, muss man bedenken, was für den Verbindungsaufbau vorher bereits geleistet werden muss bis es zum eigentlichen Connect kommt.
Immer, wenn eine Seite neu geladen wird, muss auch der Treiber neu geladen und initialisiert werden.
Und das wird wohl das Hauptproblem sein. Da hilft auch das ConnectionPooling ggf. nicht so besonders.

Was man beim Pooling unbedingt beachten muss ist, dass man hinter sich immer aufräumen muss.
D.h., Cursor müssen geschlossen werden, Statements müssen geschlossen werden.
Unterlässt man dies, bleiben die Ressourcen bestehen und irgendwann sind diese halt erschöpft, was eben den Neustart erzwingt.

Mit meinem Java-Progrämmchen ohne ConnectionPooling dauert eine Aktion von Connect, Select, Update, Insert, Disconnect insgesamt nur 0,5 - 0,8 Sekunden.
Dabei wird sowohl eine Verbindung zur AS/400 als auch zu einer Oracle-DB aufgebaut, also insgesamt alles 2 Mal.

Allerdings bleiben die Treiberressourcen ständig geladen und müssen nicht immer neu gestartet werden.

Vielleicht kann man dem PHP-Script ja einen Serverdienst anbieten der im Hintergrund alle Anfragen per SQL dann weiterleitet.

Ich denke nicht, dass man mit einem anderen Treiber da schneller wird.