Frage

Ich bin der Umsetzung einer Anwendung, die viele Kunden abfragt viele kleine Datenpakete von meinem Webserver haben. Ich bin jetzt nicht sicher, ob persistente Datenverbindungen zu verwenden, um die Datenbank oder nicht. Die Datenbank ist derzeit auf dem gleichen System wie der Webserver und konnte über die Socket-Verbindung, jedoch kann dies in naher Zukunft ändern.

Wie ich weiß, ein paar Versionen von PHP vor mysqli_pconnect wurde entfernt, weil es suboptimal benommen. In der Zwischenzeit scheint es, wieder dabei zu sein.

Auf der Grundlage meiner Szenario nehme ich, dass ich keine andere Chance Greifen Tausende von Anfragen pro Minute, aber mit vielen persistenten Verbindungen und einer MySQL-Konfiguration, die Reserven nur wenig Ressourcen pro Verbindung, nicht wahr?

Vielen Dank für Ihre Eingabe!

War es hilfreich?

Lösung

Was passiert, wenn Sie es getestet?

Mit dem Nest Willen der Welt, gibt es keine praktische Möglichkeit, Sie benötigen, um alle informaton vermitteln können für Menschen in einer SO Antwort eine definitive Antwort zu geben. Allerdings in der Regel gibt es sehr wenig Aufwand in eine MySQL-Verbindung hergestellt wird, insbesondere dann, wenn sie auf dem gleichen System wie die Datenbank-Client befindet (in diesem Fall der Webserver). Es gibt sogar weniger Overhead, wenn Sie ein Dateisystem verwenden, anstatt eine Netzwerkbuchse.

Also ich würde vorschlagen, alle Ihre Datenbank Anrufe abstrahiert, so dass Sie leicht zwischen Verbindungstypen umschalten können, aber Ihr System zu verwenden On-Demand-Verbindungen schreiben, und stellen Sie sicher, Code freigibt explizit die Verbindung so schnell wie praktisch - dann sehen, wie es benimmt.

C.

Andere Tipps

Are PHP persistant böse Verbindungen?

Das Problem ist, kann es nur so sein, viele Verbindungen aktiv zwischen Host- „Apache“ und Host „MySQL“

Persistente Verbindungen geben in der Regel Probleme, dass Sie die maximale Anzahl der Verbindungen betroffen. Auch in Ihrem Fall ist es nicht einen großen Vorteil geben, da der Datenbankserver auf dem gleichen Host ist. Halten Sie es in den normalen Verbindungen für jetzt.

Wie sie sagen, die Leistung kann variieren, aber ich habe noch nie gute Erfahrungen mit persistenten Verbindungen von PHP, einschließlich MySQL und Oracle (sowohl ODBC und OCI8). Jedes Mal, wenn ich es getestet haben, schlägt die Systemverbindungen wiederzuverwenden. Bei hohen Belastung, ich die obere Grenze schlug am Ende, während ich Hunderte von Verbindungen im Leerlauf habe.

Also mein Rat ist, dass Sie es tatsächlich versuchen, herauszufinden, ob Ihr Set-up-Verbindungen richtig wiederverwendet. Wenn es nicht wie erwartet funktioniert, wird es keine große sein verlieren sowieso. Öffnen einer MySQL-Verbindung nicht besonders teuer ist im Vergleich zu anderen DBMS

Auch vergessen Sie nicht alle relevanten Einstellungen zurückgesetzt werden, wenn entsprechende (was auch immer Sitzungswert Sie ändern, wird es für Sie beim nächsten Mal warten, um eine Verbindung zu festige und passieren, dass man wieder zu verwenden).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top