max_user_connection

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • max_user_connection

    Hallo,

    zu den Hauptzeiten hat mein MySQL Server so seine Probleme, es kommt immer die Fehlermeldung: user:xxx hat max_user_connections

    Ich habe einen eigenen Managed Server, muss ihn also nicht teilen.

    Mein Provider hat mir als Support Lösung folgendes gemailt:

    - nutzen Sie mehr statische Seiten (nicht möglich!)
    - verbessern Sie Ihre MySQL Anfrageroutinen

    Nun meine Frage: Kann man viel rausholen, wenn man versucht aller SQL Anfragen neuzuschreiben und dabei besser auf die Join Bedingungen achtet? Meine DB ist ca. 500 MB gross und steht eigentlich unter Dauerlast.
    Der Webserver macht keine Probs, nur der DB Server.

    Kann es auch daran liegen, dass ich manchmal folgende Anfragen nutze:
    (geht man davon aus, dass in Tabelle1 500000 Zeilen und in Tabelle2 5000 Zeilen sind)

    SELECT tab1.name FROM tabelle1 tab1, tabelle2 tab2 WHERE tab1.tab2_id=tab2.id

    statt:

    SELECT tab1.name FROM tabelle1 AS tab1 INNER JOIN tabelle2 AS tab2 ON tab1.tab2_id=tab2.id

    Wenn ich beide Anfragen auf der Console ausführe (liefern gleiches Ergebnis), dann brauchen beiden fast identisch gleich lange. Ich weiß nur nicht, wie dies sich auf den Einsatz von MySQL mit PHP auf dem Webserver auswirkt.

    Würde mich über ausführliche Antworten freuen.

    Vielen Dank.
    http://www.war-inc.de

    Der kostenlose Online Echtzeit-Strategie Spiel

  • #2
    Eventuell darauf achten das du 1. nur die Spalten ausliest die du brauchst, 2. immer LIMIT einbaust, 3. verstärkt JOINS benutzt.

    Allerdings ist das alles zur Datenbank optimierun. max_user_connections heißt ja, dass die maximale Anzahl von Usern an der DB verbunden sind. Also, z.B. 500 User Online und mehr verbindungen können nicht aufgebaut werden..
    PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

    Kommentar


    • #3
      mysql_close auch während scriptablauf bei nicht (mehr) gebrauch auch angewendet?

      Kommentar


      • #4
        1. Niemals mysql_pconnect() verwenden ... immer schön mysql_connect() ... asp's Rat mit dem mysql_close() befolgen.
        2. SQL-Statements analysieren ... eventuell Ausführungszeiten und Statements loggen ... (gut wenn man jetzt 'ne Klassenbibliothek hat die sowas kann ... ) ...
        3. Statements mit langen Ausführungszeiten genauer analysieren ... (EXPLAIN) ... ob geschickt indiziert wurde ...
        4. Eventuell Table-Handler ändern ... (InnoDB unterstützt Record-Locking) ...
        5. Hin- und wieder ein Blick in die Prozessliste und eine Analyse dessen was man dort sieht ... kann auch nicht schaden ...
        6. Laufzeit Informationen analysieren ... (z.B.: Wie ist das Verhältnis Key reads / Key read requests > 1% ist Scheisse und erfordert einen größeren Key-Cache) ...
        7. Deinem komischen Gammel-Provider mal tüchtig in den Arsch treten ... ein standardisiert vorkonfiguriertes MySQL-System kann niemals deinen individuellen Anforderungen genügen ... und wofür nimmst Du Dir sonst 'nen Managed Server ... ?!
        ...
        ...
        ...
        n-1. such Dir 'nen vernünftigen Provider ...
        n. such Dir jemanden, der Dir die DB mal tüchtig tuned ... !
        Zuletzt geändert von goth; 24.06.2004, 18:19.
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Wenn Du root bist kannst Du
          max_connections = ... zusätzlich in die my.cnf eintragen.
          Dann sollte das akute Problem erstmal weg sein.

          Info: SQL SHOW VARIABLES -> max_connections
          Info: SQL SHOW STATUS -> Max_used_connections

          Performance:
          Am Wichtigsten sind die keys, aber das weisst Du wohl...

          Vielleicht ist es auch möglich, statt besonders rechenintensiven Querys
          eine extra Tabelle zu erstellen.
          Das Query dann z.B. 1x in der Nacht ausführen (mit CRON).
          Die Daten sind dann leider nur Tagesaktuell.

          Kommentar


          • #6
            ach ja noch was :
            immer Daten typengerecht in Query übergeben, niemals implizite Typenkonvertierung in Anspruch nehmen.

            Kommentar


            • #7
              Original geschrieben von asp2php
              ach ja noch was :
              immer Daten typengerecht in Query übergeben, niemals implizite Typenkonvertierung in Anspruch nehmen.
              So ein Quatsch ... diese 2 Nanosekunden die einmal beim Parsen anfallen machen den Kohl wirklich nicht fett ... !
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                ok soweit schon mal schönen dank. aber was ist mit meinen beiden querys?

                ________________________
                Kann es auch daran liegen, dass ich manchmal folgende Anfragen nutze:
                (geht man davon aus, dass in Tabelle1 500000 Zeilen und in Tabelle2 5000 Zeilen sind)

                SELECT tab1.name FROM tabelle1 tab1, tabelle2 tab2 WHERE tab1.tab2_id=tab2.id

                statt:

                SELECT tab1.name FROM tabelle1 AS tab1 INNER JOIN tabelle2 AS tab2 ON tab1.tab2_id=tab2.id
                _____________________________

                machen die unterschiedlichen varianten viel aus? wie gesagt auf der mysql console kaum ein merklicher unterschied.
                http://www.war-inc.de

                Der kostenlose Online Echtzeit-Strategie Spiel

                Kommentar


                • #9
                  Die Syntax dieser beiden Queries ist equivalent ... interessant bestenfalls deren Laufzeitverhalten im laufenden Betrieb ... zu beobachten, bei längerer Laufzeit, ist dabei auch das Verhalten anderer Prozesse ... !
                  carpe noctem

                  [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                  [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                  Kommentar


                  • #10
                    Original geschrieben von goth
                    So ein Quatsch ... diese 2 Nanosekunden die einmal beim Parsen anfallen machen den Kohl wirklich nicht fett ... !
                    aha ... und ich habe eigentlich angenommen, dass du dich anstrebt Perfektionist zu sein. Scheint dass ich mich geirrt habe

                    Kommentar


                    • #11
                      Original geschrieben von goth
                      Die Syntax dieser beiden Queries ist equivalent ...
                      ist das die neue Rechtschreibung ich habe eigentlich mit ä gelernt, man weiss echt nicht mehr, was richtig und falsch ist ...

                      Kommentar


                      • #12
                        Deutsch: äquivalent
                        Englisch: equivalent
                        hopka.net!

                        Kommentar


                        • #13
                          Original geschrieben von asp2php
                          aha ... und ich habe eigentlich angenommen, dass du dich anstrebt Perfektionist zu sein. Scheint dass ich mich geirrt habe
                          Sicherlich irrst Du da nicht ... ich persönlich würde es auch so machen ... nur für die Diskussion hier ist's vollkommen wurscht ... Du würdest keinen messbaren Performance - Gewinn erzielen ...

                          Richtig ist das "äquivalent" die korrekte deutsche Schreibweise ist ... allerdings habe ich in den letzten Wochen fast ausschliesslich englische Texte gelesen ... dann sollte sowas durchaus mal zu verzeihen sein ...
                          ... und zumindest ist diese Ausrede nicht so dösig wie die der meisten hier: "Hääähhh ... weiss Du isch hab die letzten Jahre voll krass die Schule geschwänz ey ... "

                          Original geschrieben von fuser
                          Wenn Du root bist kannst Du
                          max_connections = ... zusätzlich in die my.cnf eintragen.
                          Dann sollte das akute Problem erstmal weg sein.

                          Info: SQL SHOW VARIABLES -> max_connections
                          Info: SQL SHOW STATUS -> Max_used_connections
                          Kluger Ansatz ... bei der genannten Fehlermeldung ... welchen Wert wird Max_used_connections im Verhältinis zu max_connections wohl haben .. ?!
                          Zuletzt geändert von goth; 24.06.2004, 23:47.
                          carpe noctem

                          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                          Kommentar


                          • #14
                            Original geschrieben von goth

                            Richtig ist das "äquivalent" die korrekte deutsche Schreibweise ist ... allerdings habe ich in den letzten Wochen fast ausschliesslich englische Texte gelesen ... dann sollte sowas durchaus mal zu verzeihen sein ...
                            das soll eine Frage und kein Vorwurf sein , denn als Ausländer hat man echt schwer mit der besch*ssene Umstellung. Vor 24 Jahren habe ich mir 'ne Menge Regel und Zeugs der deutschen Grammatik eingeprägt, welche heutzutage teilweise nicht mehr stimmt, da ist man einfach verunsichert....

                            Kommentar


                            • #15
                              Jupp ... vor 24 Jahren hab' ich mir auch 'ne Menge Zeug eingeprägt ... und dann hat man (anstatt mehr 6er zu verteilen) einfach die Rechtschreibung an das Niveau der P.I.S.A.'s angepasst ... !
                              carpe noctem

                              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                              Kommentar

                              Lädt...
                              X