2016-12-31 2 views
0

Mein Projekt ist eine Website mit dynamischen Seiten.MySQL MAX CONNECTIONS PER HOUR optimaler Wert

Jedes Mal, wenn ein Benutzer eine Abfrage ausführt (die Ergebnisse in einer von PHP generierten Tabelle anzeigt), verbinde ich mich mit der Datenbank, frage sie ab und trenne dann sofort die Verbindung.

Wenn ich den maximalen Wert von Abfragen/Stunde, die mein Benutzer vornehmen kann, einschätze, kann das Ergebnis 60 Minuten x 5 Abfragen/Minute = 300 Abfragen/Stunde sein.

Ich habe auch einige zusätzliche Abfragen von JavaScript generiert, ich kann eine zusätzliche 100 pro Stunde für diese hinzufügen.

In Anbetracht der oben genannten, meine MAX CONNECTIONS ... sollte 400 sein. Natürlich ist dies wahrscheinlich ein Höchstwert.

Ist das korrekt? Kannst du mir sagen, was ein "normaler" Wert ist?

EDIT: Ich habe überhaupt keine Erfahrung in dieser Angelegenheit, ich bin kein DBA. Ich dachte, dass das Einschränken dieser Nummern pro Konto eine gute Sicherheitsrichtlinie ist.

Mein Verbindungscode ist:

$db_conn = mysqli_connect("localhost", $username, $password, "Database"); 
if (mysqli_connect_errno()) 
    { 
    $err_message = 'Unable to connect to DB'.PHP_EOL.mysqli_connect_error(); 
    ... 
    } 
+0

Das hängt ganz von Ihrer Umgebung ab, aber ich sehe keinen Grund, eine untere Grenze zu setzen. Nehmen Sie Ihre Berechnungen und multiplizieren Sie mit 100 oder sogar 1000. Ich würde nicht vorschlagen, einen Wert niedriger als 100.000 Abfragen pro Stunde zu setzen. – LStarky

+0

Was lässt Sie glauben, dass die mysql-Einstellung die maximale Anzahl * pro Stunde * ist? Soweit ich sehen kann, ist es möglich, maximal gleichzeitige Client-Verbindungen **: https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_max_connections – rednaw

+1

versuchen, die Datenbank zu machen Verbindung Persistenz –

Antwort

1

nicht MAX_CONNECTIONS_PER_HOUR, MAX_QUERIES_PER_HOUR oder irgendwelchen von dem Zeug, wenn Sie GRANT Zugriff auf Ihre PHP-Web-Anwendung begrenzen. Nichts Gutes kann daraus entstehen. Wenn Ihre php-App diese Grenzen erreicht, wird es böse obskure Fehlermeldungen an Ihre Benutzer werfen. Das Zeug ist nicht für Web-Anwendungen. Es ist dort für Corporate-Style-Anwendungen, wo Adam, Barney und Charlie jeweils ihren eigenen Benutzernamen und Passwort auf dem MySQL-Server haben.

Webserver-Computer haben normalerweise nur eine oder vielleicht zwei Benutzernamen/Passwort-Kombinationen, die im Namen aller Benutzer verwendet werden. Es ist eine schlechte Sicherheitsvorkehrung, Accounts auf dem MySQL-Server zu erstellen, zu denen die Benutzer die Passwörter kennen.

Die Gesamtanzahl der Verbindungen hängt von der Größe Ihres MySQL-Servers und der Anzahl der Web-Server-Maschinen ab, die Ihre Web-App bedienen. mysqli_ has persistent connections built in, damit die Verbindungen wiederverwendet werden. Wenn die Verbindungen aufgebraucht sind, werden php-Anfragen normalerweise in die Warteschlange gestellt.

100 Verbindungen per Webserver-Maschine ist wahrscheinlich in Ordnung, es sei denn, Ihre Webserver-Maschinen sind riesige Quad-Core-Monster mit jeweils 16 g Speicher.

+1

Übrigens sind die Lastberechnungen, die Sie in Ihrer Frage gemacht haben, solide. Diese Art von Berechnung wird für Sie wieder auftauchen, wenn Sie bereit sind, diese Anwendung zu skalieren. –

+0

Meine Website wird gehostet, also denke ich, dass die Server keine Probleme mit der Verbindungsnummer haben werden. Mein Grund für diese Frage war Sicherheit. Ich bin völlig neu in diesem Bereich - deshalb frage ich mich: "Ist das (mein Denken, das ist richtig)?". Danke für all deine Antworten und Kommentare. – Mikey

+0

Lassen Sie Ihren Hosting-Provider MAX_CONNECTIONS_PER_HOUR usw. nicht einschränken !! Sie werden wahrscheinlich nicht versuchen, aber wenn sie es tun, feuern sie und einen anderen Anbieter. Ernst. –

1

Zu allererst ...

Was ist Ihr Ziel diese zu begrenzen? Wenn Sie sich Sorgen um Server-Ressourcen machen, müssen Sie es nicht sein. MySQL ist äußerst effizient und kann TRILLIONS von Abfragen pro Stunde verwalten. Warum sollte eine Untergrenze gesetzt werden, die später zu Problemen führen kann? Ich sehe überhaupt keinen Grund, diesen Wert überhaupt festzulegen, oder zumindest nicht für weniger als das, was sich Ihre wildeste Vorstellungskraft Ihrer Website vorstellen könnte. Also, wenn Sie sich entscheiden, dies zu spezifizieren, stellen Sie sicher, dass es eine große Zahl wie 100.000 ist. Zweitens

...

Vielleicht fragst dich, weil du in den Prozess sind Benutzerkonten zu erstellen. Die hier angegebenen Parameter sind jedoch optional und in den meisten Fällen wahrscheinlich nicht besonders beunruhigend. Ich würde vorschlagen, dass Sie diese Optionen nur dann angeben, wenn ein bestimmtes Problem vorliegt.

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

+0

Ja, ich erstelle heute Konten - diese Website wird ausschließlich von mir und für ein Projekt von mir entwickelt, so dass ich niemanden sonst fragen muss. – Mikey