Datenbank Max_Connections

  • Sers,
    mal so ne frage neben bei.


    Bei der MySQL Datenbank gibt es ja max_connection.
    Wer verbraucht eigentlich so eine Connection ?


    zB: Ein Forum.
    Wenn da 500 Leute gleichzeitig Online sind verbraucht man dann auch 500 Connections ?


    MfG
    Joka


    & danke für die antworten.

    • Offizieller Beitrag

    Hallo,
    bei einer Datenbank wie z.B. MySQL sagt dieser Wert an, wie viele gleichzeitige Verbindungen aufgebaut werden können.


    Standardmäßig ist das bei MySQL Server 5.7 auf 150+1 gesetzt, wobei die eine Verbindung nur für Super User wie "root" ist, damit sich der Admin im Notfall noch verbinden und Probleme debuggen könnte. Siehe auch MySQL :: MySQL 5.7 Reference Manual :: 6.1.5 Server System Variables.


    Es ist daher auch sehr wichtig, dass man Anwendungen immer unter einem normalen extra User laufen lässt. Zudem hat "root" zu viele Rechte und wenn eine Forensoftware z.B. Sicherheitslücken hat, könnte ein Angreifer u.U. alle Datenbanken löschen... ;)


    Die Entwickler der MySQL Datenbank haben den Wert extra für den apache2 Webserver damals erhöht, um die Performance zu erhöhen und derartige Probleme auszuschließen. Wenn die Anzahl der Verbindungen erschöpft ist, erhält man nämlich einen Fehler, der "Too many connections" heißt. Solange du diesen nicht annähernd hast, ist die Einstellungen normalerweise irrelevant. :) (Siehe auch MySQL :: MySQL 5.7 Reference Manual :: B.5.2.7 Too many connections)


    Mit dem Befehl "SHOW PROCESSLIST", kannst du dir in der DB anzeigen lassen, wie viele Verbindungen aktuell genutzt werden: MySQL :: MySQL 5.7 Reference Manual :: 14.7.5.29 SHOW PROCESSLIST Syntax


    Mein Monitoring Server schreibt pro Sekunde 9,6 Datensätze und benötigt hierfür 40 Verbindungen. Da ist also noch enorm viel Luft nach oben... Schau doch einfach mal bei dir, wie viele dir angezeigt werden und dann kannst du entscheiden, ob du hier was ändern solltest oder nicht. :)


    By the way: TeamSpeak hat so eine Einstellung auch in der ts3server.ini. Der Standardwert ist hier 10 und bedeutet, dass max. bzw. eigentlich permanent immer 10 MySQL Verbindungen aufgebaut sind. Laut TeamSpeak selbst reicht das für über 1.000 Slots auch noch locker aus und sie hatten bisher noch nie den Fall, dass die Anzahl erhöht werden musste.


    Und 500 Benutzer, die gleichzeitig auf einem Forum unteerwegs sind, bedeutet noch lange nicht, dass diese auch auf die Millisekunde gleichzeitig etwas von der Datenbank anfragen. Normalerweise ist das immer 1-2 Sekunden Unterschied und meistens dauert so eine SQL Abfrage nur 0,3s oder sowas. (Je nach SQL Befehl.) :)

    Viele Grüße,
    Sebbo

    ---

    DevOps Engineer <3