PHP mit MySQL Replikation
Daniel S.
- php
Folgendes Szenario: 2 Server mit MySQL Replikation, Server 1 mit PHP und MySQL Master und Server 2 mit Mysql Slave.
Die PHP Skripte sollen abwechselnd Datenbankabfragen auf Server 1 und 2 machen.
Mache ich eine "Select" Anweisung, kann ich die auf beide MySQL Server machen (Master und Slave).
Mach ich eine Insert/Update Anweisung kann ich diese nur an den Master senden? richtig?
Dazu müsste ich für ein PHP Skript mit Update und Select Anweisung also ggf. 2 Datenbankverbindung öffnen, eine zum Master für Update und ggf. einer zum Sklave, falls dieser wegen Lastverteilung gerade benutzt wird.
Meine Frage: Kann man in PHP irgendwie einstellen, dass es automatisch alle Updates/Insert/Deletes... an den Master schickt?
(Ich weiß, ich könnte auch Master - Master Replikation oder einen Mysql Load Balancer benutzen, jdeoch interessiert es mich für das Szenario Master-Slave)
Hallo!
Meine Frage: Kann man in PHP irgendwie einstellen, dass es automatisch alle Updates/Insert/Deletes... an den Master schickt?
Mir fällt da spontan ein, dass du dir einfach eine eigene Klasse für die Datenbankzugriffe schreibst bzw. eine die im Netz zu finden ist änderst, sodass update, insert & delete am Master erledigt wird (eigene Methoden z.B.).
n'abend,
Meine Frage: Kann man in PHP irgendwie einstellen, dass es automatisch alle Updates/Insert/Deletes... an den Master schickt?
So einfach "einstellen" lässt sich das nicht. Du könntest - wie man bereits vorgeschlagen hat - eine Komponente einsetzen, die die Query analysiert und dir anhand von Vorkommen von "(INSERT|UPDATE|DELETE)" eine bestimmte Verbindung benutzt. Das halte ich aber für eine sehr unschöne Sache. Wie willst du in diesem Fall denn verbindungsspezifische Einstellungen setzen?
Meine Komponenten differenzieren grundsätzlich zwischen lesenden und schreibenden Queries. Dadurch kann ich - wenn nötig - den Master zum Ändern, und einen beliebigen Slave zum Lesen getrennt ansprechen.
weiterhin schönen abend...