BugsBastard
Erfahrenes Mitglied
Hallo zusammen,
ich habe mal ein interessantes Mysql-Problem (zumindest für mich interessant).
Wir haben ein Intranet, welches wir mit PHP und Mysql programmieren. Außerdem hängen noch einige andere Programme über diverse Schnittstellen in dem System, welche die Daten mit der Mysql-Datenbank abgleichen. Mysql selber läuft auf einem eigenen Server (mit Windows), welcher 4 Prozessorkerne hat.
Nun haben wir oft das Problem, daß der Mysql-Server durch bestimmte (nicht optimierbare) Mysql-Abfragen komplett ausgelastet ist, bzw. andere Benutzer keinen Zugriff mehr auf den mysql-Server haben. Wenn wir uns den Server anschauen, dann läuft er im Task-manager auf 25%. Da er 4 Kerne hat, gehen wir davon aus, daß nur ein Kern wirklich ausgelastet ist, die anderen gar nicht benutzt werden.
Für unser Intranet benutzen wir für den Zugriff jeweils nur einen Benutzer. Wenn ich nun, während der Server ausgelastet ist, mit einem Mysql-Administrator unter einem anderen Benutzer auf den Server zugreife, dann kann ich verschiedene Abfragen ausführen, ohne Probleme. Die Auslastung des mysql-Servers geht in diesem Fall auch über 25%, ich kann auch keinen großen Geschwindigkeitsverlust beim ausführen der Abfragen feststellen. Wenn ich allerdings auf der PHP-Seite, welche die Monsterabfragen erstellt, einen anderen Mysql-Benutzer einstelle, so wird der Mysql-Server trotzdem für die anderen PHP-Seiten (mit dem Haupt-Benutzer) geblockt.
1. Ist es richtig, daß Mysql seine Abfragen von verschiedenen Benutzern auf verschieden Kerne verteilt, oder ist das nur ein komisches (aber replizierbares) Phänomen bei uns?
2. Wie kann ich es einstellen, daß PHP unterschiedliche Mysql-User benutzt, normalerweise sollte ich das doch in der Connection direkt einstellen, richtig?
3. Kann es sein, daß PHP wenn ich die Connection wechsel, weiterhin auf die Alte Connection zugreift nur mit einem anderen Benutzer?
Gruss und danke,
Bugs
ich habe mal ein interessantes Mysql-Problem (zumindest für mich interessant).
Wir haben ein Intranet, welches wir mit PHP und Mysql programmieren. Außerdem hängen noch einige andere Programme über diverse Schnittstellen in dem System, welche die Daten mit der Mysql-Datenbank abgleichen. Mysql selber läuft auf einem eigenen Server (mit Windows), welcher 4 Prozessorkerne hat.
Nun haben wir oft das Problem, daß der Mysql-Server durch bestimmte (nicht optimierbare) Mysql-Abfragen komplett ausgelastet ist, bzw. andere Benutzer keinen Zugriff mehr auf den mysql-Server haben. Wenn wir uns den Server anschauen, dann läuft er im Task-manager auf 25%. Da er 4 Kerne hat, gehen wir davon aus, daß nur ein Kern wirklich ausgelastet ist, die anderen gar nicht benutzt werden.
Für unser Intranet benutzen wir für den Zugriff jeweils nur einen Benutzer. Wenn ich nun, während der Server ausgelastet ist, mit einem Mysql-Administrator unter einem anderen Benutzer auf den Server zugreife, dann kann ich verschiedene Abfragen ausführen, ohne Probleme. Die Auslastung des mysql-Servers geht in diesem Fall auch über 25%, ich kann auch keinen großen Geschwindigkeitsverlust beim ausführen der Abfragen feststellen. Wenn ich allerdings auf der PHP-Seite, welche die Monsterabfragen erstellt, einen anderen Mysql-Benutzer einstelle, so wird der Mysql-Server trotzdem für die anderen PHP-Seiten (mit dem Haupt-Benutzer) geblockt.
1. Ist es richtig, daß Mysql seine Abfragen von verschiedenen Benutzern auf verschieden Kerne verteilt, oder ist das nur ein komisches (aber replizierbares) Phänomen bei uns?
2. Wie kann ich es einstellen, daß PHP unterschiedliche Mysql-User benutzt, normalerweise sollte ich das doch in der Connection direkt einstellen, richtig?
3. Kann es sein, daß PHP wenn ich die Connection wechsel, weiterhin auf die Alte Connection zugreift nur mit einem anderen Benutzer?
Gruss und danke,
Bugs