Frage

Gibt es trotzdem zu priorisieren oder Drossel eine Abfrage überhaupt in MySQL?

Ich bin ein DBA auf einem Server, der eine Menge von nicht optimierten Abfragen kommen in den Server sieht und sie zerstören nur die CPU. Ich betrachte Drosselung bestimmte Benutzer, die in einem schlechten Art und Weise auf der Datenbank getroffen.

Zur Verdeutlichung:

Ich weiß, dass MySQL Anlagen gebaut, um Limit Anzahl der Anfragen hat, Anschlüsse, etc. Aber die sind nicht wirklich das Problem, dann ist es, dass einmal in einem blauen Mond ein Benutzer eine nicht optimierte Abfrage senden, und ich würde Notwendigkeit zu Zeit oder etwas ähnliches.

War es hilfreich?

Lösung

http://dev.mysql.com/doc /refman/4.1/en/user-resources.html

Ab MySQL 4.0.2, erhalten Sie Zugriff auf die folgenden Serverressourcen für einzelne Konten einschränken können:

Die Anzahl der Abfragen, dass ein Konto pro Stunde ausgeben kann

Die Anzahl des Updates, dass ein Konto pro Stunde ausgeben kann

Die Anzahl der Male ein Konto auf den Server pro Stunde herstellen können

Zusätzliche Informationen -

MySQL keinen Abfrage-Timeout-Wert, oder jede andere integrierte Möglichkeit, eine individuelle Abfrage zu drosseln. Es ist jedoch ziemlich trivial, ein Skript zu schreiben, die langlaufende Abfragen töten. Man könnte sogar den Benutzer und Abfrage erfassen, so dass Sie später die säumigen Benutzer / Programmierer schlagen können.

Hier ist ein Beispiel für ein PERL verwendet wird.

Andere Tipps

Ich weiß, dass phpMyAdmin einen Bereich für Max # von Abfragen pro Stunde, Max Anzahl der Updates pro Stunde, Max Anzahl der Anschlüsse pro Stunde, und Max Anzahl der Benutzerverbindungen pro Benutzer. Es gibt wahrscheinlich auch andere Möglichkeiten, um diese anderen Werte als phpMyAdmin auf

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