Also die Zahlen die du nennst hören sich nicht nach viel an. Leider gibst du keinen Zeitrahmen an in dem das statt findet. Aber selbst wenn diese 5200 Anfragen innerhalb von einer Stunde aufschlagen sollte das ( selbst mit nicht optimierten SQL-Statements) kein problem sein. Es sei denn du läst dir irrsinnig grosse Antwort listen zurückgeben und suchst in denen dann mit php mitteln.
Deswegen denk ich mal das du im Hintergrund irgendwas sehr "zeit teures" machst. z.B. einen entfernten Server fragen ob der Brusche eingeschrieben ist.
Das solltest du unbedingt "asynchron" machen:
-via PHP/Perl Formular die Daten abfragen.
-In lokale SQL stopfen.
-Auf eine selbst refreshende Seite ( z.B. 1min ) schicken auf der "Bitte Warten Sie" steht die nur in die lokale DB schaut ob der eintrag als "bestätigt" makiert wurde.
Dann machst du dir ein vom Webserver unabhängiges script ( z.B. via cronjob ) das in die lokale DB schaut und _seriell_ die Anfragen abarbeitet. Und dann den eintrag in der DB als "bestätigt" oder "abgelhnt" makiert.
Das hätte zur Folge das der Apache seine limitierten verbindungen nicht unnötig lange offen halten muss weil das script arbeitet bzw. was ich stark vermute auf Antworten wartet.
Selbst wenn da tatsächlich eine hohe CPU last entsteht würde das den Server nicht "stillegen" - Ein script bearbeitet im hintergund die anfragen und der Apache hat luft auf den User zu reagieren.
Als "Bonus" könnte man sogar ne art "Zeitanzeige/Fortschritt" einbauen oder im schlimmsten fall sagen das er die Antwort dann irgendwann per Email bekommt.