MySql Variable
interactive_timeout und wait_timeout
hallo leute!
-was ist das maximum an sekunden was ich den variablen zuteilen kann? (standard ist glaube ich 28800)
-besteht die möglichkeit diese auf "no limit" oder dergleichen zu setzen?
danke für eure antworten!!!
lg
hallo leute!
-was ist das maximum an sekunden was ich den variablen zuteilen kann? (standard ist glaube ich 28800)
-besteht die möglichkeit diese auf "no limit" oder dergleichen zu setzen?
danke für eure antworten!!!
lg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 103025
Url: https://administrator.de/forum/mysql-variable-103025.html
Ausgedruckt am: 23.12.2024 um 12:12 Uhr
7 Kommentare
Neuester Kommentar
Moin Shokk84,
das Schöne an Montagen und an diesem Forum ist, dass ich hier immer wieder neue Sachen kennenlerne.
Und beim Chatten reichen 8 Stunden nicht?
Dieser hohe Timeout-Wert ist es unnötiges Risiko für die Datenbank und sollte Dich jemand nach einem realistischen Wert für eine "produktive" Datenbank fragen, dann solltest Du ganz sicher ganz spontan antworten:
"Okay, ich würde so den wait_timeout auf 60 sec und den connect_timeout auf 15 sec hochsetzen und den interactive_timeout auf 120 sec (ja, der hat den Default 28880 sec =8 Stunden) runtersetzen."
Bei produktiven Datenbanken, mit denen durchaus konzernweit gearbeitet wird und werden muss, liegt der interactive_timeout bei uns bei 35 sec.
Was soll denn bei Dir für ein Szenario gegeben sein, dass mehr als 8 Stunden auf eine Antwort wartet und solange die Connection offen hält?
Grüße
Biber
das Schöne an Montagen und an diesem Forum ist, dass ich hier immer wieder neue Sachen kennenlerne.
im prinzip gehts bei den beiden variablen ja nur darum das ein "hallo jemand da" gesendet wird
Ach? Nutzt Ihr die Datenbank nur zum Chatten?Und beim Chatten reichen 8 Stunden nicht?
Dieser hohe Timeout-Wert ist es unnötiges Risiko für die Datenbank und sollte Dich jemand nach einem realistischen Wert für eine "produktive" Datenbank fragen, dann solltest Du ganz sicher ganz spontan antworten:
"Okay, ich würde so den wait_timeout auf 60 sec und den connect_timeout auf 15 sec hochsetzen und den interactive_timeout auf 120 sec (ja, der hat den Default 28880 sec =8 Stunden) runtersetzen."
Bei produktiven Datenbanken, mit denen durchaus konzernweit gearbeitet wird und werden muss, liegt der interactive_timeout bei uns bei 35 sec.
Was soll denn bei Dir für ein Szenario gegeben sein, dass mehr als 8 Stunden auf eine Antwort wartet und solange die Connection offen hält?
Grüße
Biber
Moin Shokk84,
aber wenn sich Dein Problem so darstellt, dann solltest Du doch statt dessen erwägen, eine permanente Connection zu etablieren - also das Flag "MYSQL_CLIENT_INTERACTIVE" gar nicht setzen zu lassen.
Dann kannst Du getrost den Wert für den "interactive_timeout" ignorieren und bestenfalls den Wert für "connect_timeout" hochschrauben.
Hier noch ein Link dazu und von da aus solltest Du zur Funktion "mysql_pconnect()" kommen.
Und ja, auch wenn Du es nicht hören willst: Es ist aus meiner Sicht ein unvertretbares Risiko.
Grüße
Biber
aber wenn sich Dein Problem so darstellt, dann solltest Du doch statt dessen erwägen, eine permanente Connection zu etablieren - also das Flag "MYSQL_CLIENT_INTERACTIVE" gar nicht setzen zu lassen.
Dann kannst Du getrost den Wert für den "interactive_timeout" ignorieren und bestenfalls den Wert für "connect_timeout" hochschrauben.
Hier noch ein Link dazu und von da aus solltest Du zur Funktion "mysql_pconnect()" kommen.
Und ja, auch wenn Du es nicht hören willst: Es ist aus meiner Sicht ein unvertretbares Risiko.
Grüße
Biber
Moin Shokk84,
hmm.... den connect_timeout hochschrauben...
die Obergrenze wird vermutlich - die Jungs und Mädels von mySQL kochen ja auch nur mit Wasser - nur den Datentyp gegeben sein.
Soll heißen, wenn die den Parameter connect_timeout als INTEGER deklariert haben, dann kannst Du ihn max. auf 32767 (oder so ungefähr) festlegen.
Wenn der Wert als LONG vorgesehen ist, dann halt keine realistische Obergrenze für Dich.
Was ich nirgends gefunden habe ist ein dokumentierter Dummy-Wert für "gar kein Timeout", also ein gesetzter connect_timeout-Wert von 0 oder (-1), der <i> interpretiert wird als "no timeout".
Ich würde diesen Weg aber wirklich erst gehen, wenn Dir Deine Coder/CoderInnen glaubhaft versichern, es wäre programmiertechnisch ein Ding der Unmöglichkeit, von Clientseite zu prüfen "Ist eine Connection aktiv oder muss ich eine neue aufbauen."
Das Problem, das ich sehe ist unter anderem:
Ein Serverseitig gesetzter DB-whatever-timeout gilt für die ganze Datenbank.
User-unabhängig.
Bedeutet: JEDER Dackeluser kann sich unbegrenzt lange mit der DB connecten, wenn Du einmal diesen Wert auf unendlich setzt.
Aber Du kannst nur begrenzt viele Connections gleichzeitig zulassen.
Wenn Du nun ein paar Spezis dabeihast, die sich gegen Deine DB connecten und dann erstmal in den Weihnachtsurlaub fahren, dann sind die Connections WECH.
Grüße
Biber
hmm.... den connect_timeout hochschrauben...
die Obergrenze wird vermutlich - die Jungs und Mädels von mySQL kochen ja auch nur mit Wasser - nur den Datentyp gegeben sein.
Soll heißen, wenn die den Parameter connect_timeout als INTEGER deklariert haben, dann kannst Du ihn max. auf 32767 (oder so ungefähr) festlegen.
Wenn der Wert als LONG vorgesehen ist, dann halt keine realistische Obergrenze für Dich.
Was ich nirgends gefunden habe ist ein dokumentierter Dummy-Wert für "gar kein Timeout", also ein gesetzter connect_timeout-Wert von 0 oder (-1), der <i> interpretiert wird als "no timeout".
Ich würde diesen Weg aber wirklich erst gehen, wenn Dir Deine Coder/CoderInnen glaubhaft versichern, es wäre programmiertechnisch ein Ding der Unmöglichkeit, von Clientseite zu prüfen "Ist eine Connection aktiv oder muss ich eine neue aufbauen."
Das Problem, das ich sehe ist unter anderem:
Ein Serverseitig gesetzter DB-whatever-timeout gilt für die ganze Datenbank.
User-unabhängig.
Bedeutet: JEDER Dackeluser kann sich unbegrenzt lange mit der DB connecten, wenn Du einmal diesen Wert auf unendlich setzt.
Aber Du kannst nur begrenzt viele Connections gleichzeitig zulassen.
Wenn Du nun ein paar Spezis dabeihast, die sich gegen Deine DB connecten und dann erstmal in den Weihnachtsurlaub fahren, dann sind die Connections WECH.
Grüße
Biber